Document Analysis, Commenting and Reporting System

ABSTRACT

A document analysis, commenting, and reporting system provides tools that automate quality assurance analysis tailored to specific document types. As one example, the system may implement state machines that evaluate document structure instances to determine whether the document structure instances conform to pre-defined syntaxes. The state machines may include error states and final states, and messages may be associated with the error states for display when a state machine reaches the error state.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/846,615 filed Jul. 29, 2010 which is: a continuation of U.S. patentapplication Ser. No. 12/558,483, filed Sep. 11, 2009, and acontinuation-in-part of U.S. patent application Ser. No. 12/121,503,filed May 15, 2008 and a continuation-in-part of U.S. patent applicationSer. No. 11/945,958, filed Nov. 27, 2007. This application incorporatesby reference all of the above noted applications in their entireties.

BACKGROUND OF THE INVENTION

1. Technical Field

This application relates to document analysis, and in particular, tovisualizing the relationships between entities described in arequirements specification.

2. Related Art

Rapid developments in computer technology have given rise to thewidespread adoption of document authoring applications. Today, asignificant portion of the modern workforce generates documents using aword processor. Unfortunately, the writing skills of the typicalindividual have not improved at anywhere near the pace of technology. Asa result, computer technology often results in faster generation ofpoorly written documents, rather than in efficient production of clear,consistent, and unambiguous work product.

At the same time, significant technical challenges exist in analyzingand providing constructive feedback on documents. The documentsthemselves vary widely in purpose, format, and content, and there is nogeneral flexible and adaptable framework in place for specific documentanalysis, commenting, or reporting. Document authoring applications onlyprovide basic tools that cooperate with authors to improve documentquality. As examples, analysis tools such as spell checkers and grammarcheckers only provide analysis at a general level, such as checks of thefundamental rules of a given language. In other words, the specializednature of many documents defeats more specific analysis that couldprovide meaningful criticism on a document and vastly improve thesubstantive content of a document.

Poorly written documents have many adverse and costly consequences.Vague or ambiguous terms create misunderstandings andmisinterpretations. Poor formatting frustrates testing and validationprocedures. Failure to clearly separate concepts results in extra workneeded to untangle and factor concepts into individual pieces.Contradictory statements, which often arise in lengthy, complexdocuments, create extra work to resolve the meaning and intended purposeof passages in the document. Inconsistent terms leave different readerswith different, possibly inconsistent, expectations regarding specificparts of the document.

One specific application of the system described below is to analyzerequirements documents. Requirements documents mediate betweenstakeholder objectives and the solution that developers will create toachieve the objectives. A successful requirements process is one thatcreates requirements documentation that captures stakeholder needs, setsstakeholder expectations, and may be used by developers to create asolution which satisfies the stakeholder's needs and expectations.Unsuccessful requirements processes result in requirements that do notensure that stakeholders understand what they will be getting or thatdevelopers will build something that is ultimately going to satisfy thestakeholder's needs.

While creating a good, clear requirements document may soundstraightforward, it is not. For large software systems it is extremelydifficult to create good requirements documents. Furthermore, defects inthe requirements process are very expensive. Incorrect, incomplete, orunclear requirements are the most common cause of software defects, andproblems resulting from requirements defects are also the most expensivekinds of “bugs” to fix.

Some existing tools primarily concentrate on maintaining requirementsand test scripts after a baseline requirements set has been defined.However, this is only part of the story. Many of the most costlyrequirements defects happen during the definition process, resulting ina baseline that is of poor quality, and prior tools are agnostic to thequality of the requirements or of the definition process and thereforeprovide no aid in that regard.

Moreover, many tools do not provide an overview of the interactionsbetween entities of a requirements document. Thus, a reader is oftenleft wondering whether one or more entities of a requirements documentshould be, or should not be, interacting. These tools do not account forthe interactions that occur among entities of a requirements document,and a reader may be left with an impression that certain entitiesinteract while other entities do not interact.

A need exists for improved document analysis tools that address theproblems noted above and other previously experienced.

SUMMARY

In one implementation, the system includes a syntax-based documentvisualization module operative to identify constituents in documentstructure instances of an electronic document and determine whether theconstituents in the document structure instances match constituents ofan editable electronic spoken language glossary. The editable electronicspoken language glossary may include words or phrases that areconsidered permissible words and phrases for a previously defineddocument type specific syntax. The syntax-based document visualizationmodule may be operative to generate one or more maps, such as acomponent visualization relationship map or a system visualizationrelationship map, that illustrate interactions and/or non-interactionsbetween constituents of the document structure instances.

In addition, or alternatively, the system may include a syntax-baseddocument attribute analysis module that operates in conjunction with anelectronic attribute glossary. The electronic attribute glossary mayspecify one or more attribute requirements for one or more constituentsof the editable electronic spoken language glossary. The syntax-baseddocument attribute analysis module may determine whether one or moredocument structure instances of the electronic document satisfy theattribute requirements for one or more constituents. The syntax-baseddocument attribute analysis may be further operative to generate andoutput an attribute requirement report that identifies whether anattribute requirement for one or more constituents has been satisfied.

In one implementation, the system may be a Visual Basic for Applicationsplug-in for the Word 2007™ word processor. In that regard, the systemmay provide a specific ribbon interface. The system may be implementedin many other ways, however, such as a stand alone application, webservice, or shared function library.

Other systems, methods, features and advantages will be, or will become,apparent to one with skill in the art upon examination of the followingfigures and detailed description. All such additional systems, methods,features and advantages are included within this description, are withinthe scope of the invention, and are protected by the following claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The system may be better understood with reference to the followingdrawings and description. The elements in the figures are notnecessarily to scale, emphasis instead being placed upon illustratingthe principles of the system. In the figures, like-referenced numeralsdesignate corresponding parts throughout the different views.

FIG. 1 shows a network including a document analysis system incommunication with other systems.

FIG. 2 shows an example of an agent glossary.

FIG. 3 illustrates an example of a mode glossary.

FIG. 4 shows an example of an action glossary.

FIG. 5 illustrates an example of a problem phrase glossary.

FIG. 6 shows an example of a structure identifier and a syntaxdefinition.

FIG. 7 shows a requirements analysis system.

FIG. 8 shows a requirement analysis user interface.

FIG. 9 shows logic flow for a requirements analysis system.

FIG. 10 shows a requirements commenting system.

FIG. 11 shows an analysis messages embedded in a document underanalysis.

FIG. 12 shows logic flow for a requirements commenting system.

FIG. 13 shows a report generator system.

FIG. 14 shows an example report.

FIG. 15 shows logic flow for a report generator system.

FIG. 16 shows an example of an agent taxonomy.

FIG. 17 shows an example of an action taxonomy.

FIG. 18 shows an example of an ontology model.

FIG. 19 shows an ontology analysis system.

FIG. 20 shows logic flow for an ontology analysis system.

FIG. 21 shows an example of a requirements relationship glossary.

FIG. 22 shows a requirements graphing system.

FIG. 23 shows an example of a core ontology hierarchy.

FIG. 24 shows an example of a document specific ontology hierarchy.

FIG. 25 shows an example of an entity glossary.

FIG. 26 shows an example of an alternative problematic phrase glossary.

FIG. 27 shows an example of a non-functional attribute glossary.

FIGS. 28-35 show examples of state machines employed by the requirementsanalysis system in evaluating document structure instances.

FIG. 36 shows an example of a requirements visualization system.

FIG. 37 shows an example of a component visualization relationship map.

FIG. 38 shows an alternative example of a component visualizationrelationship map.

FIG. 39 shows yet another example of a component visualizationrelationship map.

FIG. 40 shows an example of a system visualization relationship map.

FIG. 41 shows an alternative example of a system visualizationrelationship map.

FIG. 42 shows yet another example of a system visualization relationshipmap.

FIG. 43 shows an example of a sub-system visualization relationship map.

FIG. 44 shows another example of a sub-system visualization relationshipmap.

FIG. 45 shows yet another example of a sub-system visualizationrelationship map.

FIG. 46 shows a further example of a sub-system visualizationrelationship map.

FIG. 47 shows an additional example of a sub-system visualizationrelationship map.

FIG. 48 shows an example of an attribute requirement report.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 shows a network 100 including a document analysis, commenting,and reporting system 102 (“system 102”). The system 102 is connected tothe network infrastructure 104. Through the network infrastructure 104,the system 102 may communicate with an inference engine 106, such as bya web services interface 108, and with other entities, such as theglossary provider 110. The system 100 may analyze a wide range ofdocument types, with analysis tailored for the specific document type inquestion. In one implementation, the system 100 includes the documentparameter sets that tailor analysis to any specific document type.However, in other implementations, the system 100 may receive newdocument parameter sets or update existing document parameters sets bycoordinating with the glossary provider 110. To that end, the glossaryprovider 110 may maintain a database of many different document specificparameter sets, two of which are labeled 112 and 114.

The system 102 includes a processor 116, memory 118, network interface120, I/O devices 122, and a document analysis database 124. The system102 also includes a display 125 on which graphical user interfaces(GUIs) and analysis reports are rendered, as noted below. The documentanalysis database 124 may store document parameter sets that tailor theoperation of the system 102 to any desired document type.

In the example shown in FIG. 1, the memory 118 includes an analysismodule 126, a commenting module 128, and a reporting module 130. Each ofthe modules 126-130 is described in more detail below, and each modulemay be used alone or in combination with other modules to assess adocument under analysis 132 (“document 132”). The document 132 may beany form of document, such as a word processor document, spreadsheetdocument, or text file. In addition, the document may be any specifictype of document, such as a requirements specification, patentapplication, contract, building specification, or other document type.

As will be described in more detail below, the document 132 includes anynumber of document structure instances (e.g., the document structureinstances 134 and 136). Each document structure instance represents aunit of content for analysis by the modules 126-130. As examples, adocument structure instance may be a word, phrase, sentence, orparagraph. Other examples of document structure instances includearbitrary sequences of characters (e.g., serial numbers, emailaddresses, or encryption keys).

Yet another example of document structure instances is requirementsstatements. Requirements statements may take any number of forms, suchas a requirement statement identifier, followed by a requirementsentence containing an actor, modal verb, action, and statementremainder. The discussion below uses examples of processing onrequirements statements found in requirements documents. However, thesystem 102 may analyze any specific type of document, with anyparticular form of document structure instances.

The modules 126-130 analyze the document 132 in a manner tailored to thetype of document. To that end, the modules 126-130 access a documentspecific parameter set which may be retrieved from the document analysisdatabase 124, pre-configured in a word processor or other application,pre-defined as individual files stored in memory, or otherwise obtainedor provided to the modules 126-130. FIG. 1 shows an example of adocument specific parameter set 138. Any of the information in thedocument specific parameter set 138 may be made read-only, read-write,or have attached access control permissions for specific users orgroups.

The document specific parameter set 138 may include one or moreglossaries for analyzing a document. The glossaries may be spokenlanguage glossaries, written language glossaries, language specificglossaries, document property glossaries, or other types of glossaries,which may store language components such as words, phrases, or otherlanguage constructs for analysis. Examples of spoken language glossariesinclude glossaries having words from the English language, words fromthe Russian language, words form the Japanese language, or words fromLatin or non-Latin languages. Spoken language glossaries may alsoinclude words from multiple different spoken languages. Accordingly, thesystem may perform a multiple language analysis on a document thatincludes many languages without having to load or unload glossariesspecific to each language and separately perform multiple processingpasses.

Examples of written language glossaries include glossaries having wordsfrom the English language, words from the Russian language, or wordsfrom a Latin or non-Latin language. A written language glossary may havewords depicted in print, script, cursive, or any other font. In otherwords, the written language glossary may include visual language indiciathat the system may analyze to determine, for example, whether alanguage construct is vague or ambiguous. A written language glossarymay also include words from one or more written languages, or from wordscontained in a spoken language glossary. Accordingly, the system mayalso perform multiple language analysis with written languages.

Examples of language specific glossaries include glossaries having wordsfrom computer programming languages, words made up of symbols or othernon-alphanumeric characters, or components of any other non-written ornon-spoken languages. Examples of document property glossaries includeglossaries having words describing document properties, such as themargins of a document, the number of pages in a document, thepermissible or non-permissible fonts in a document, or other documentproperty. As a result, the system may extend its processing to documentproperties beyond language constructs, to help critique a document inother meaningful ways.

In one embodiment, the document parameter set 138 includes an agentglossary 140, an action glossary 142, a mode glossary 144, and a phraseglossary 146. The document specific parameter set 138 further includes astructure identifier 148 and a syntax definition 150. The structureidentifier 148 may define a label that flags a portion of the documentas a structure instance for analysis. The syntax definition 150 maydefine the expected syntax for the structure instance. In oneimplementation, the system 102 analyzes a received document to determinea document type, and then retrieves the document specific parameter set138 corresponding to the determined document type. For example, thesystem 102 may retrieve the syntax definition 150, the structureidentifier 148, the glossaries 140-146, or other document parameterscorresponding to the determined document type. One example of a documenttype is a requirements document.

In the context of a requirements specification, the structure identifier148 may be a regular expression, such as “[A-Za-z0-9]*[0-9]”. Theregular expression specifies that any combination of uppercase letters,lower case letters, and digits, followed by a digit, flags the followingsentence as a requirement to analyze. An example syntax definition is:[agent] [mode] [action] [remainder]. The syntax definition specifiesstructure category components for the document structure. In thisexample, the structure category components include an agent, followed bya modal verb, followed by an action, followed by the rest of thesentence.

The agent glossary 140 defines the permissible agents. The mode glossary144 defines the permissible modal verbs. The action glossary 142 definesthe permissible actions. The system 102 may enforce the syntax, byperforming processing only on those sentences that meet the syntax withagents, modes, and actions defined in the glossaries 140-144, or mayperform processing on a sentence that partially or wholly meets thesyntax. For example, even if an actor is missing or an unrecognizedactor is present, the system 102 may still analyze the remainder forambiguous terms.

FIG. 2 shows an example of the agent glossary 140. In the example shownin FIG. 2, the agent glossary 140 defines an agent field 202, anexplanation field 204, a parent field 206, and a notes field 208. Theagent field 202 defines permissible constituent agents for the structureinstance syntax, such as “Developers” and “Development Team”. Theexplanation field 204 provides diagnostic information relevant to theagent, how the agent performs their job, or other agent relatedinformation. The parent field 206 may be used to indicate a constituenthierarchy parameter for building hierarchies of agents, as will bedescribed in more detail below. The additional notes field 208 providesa place where developers may insert information regarding a particularagent and its presence in the agent glossary 140. One of the uses of theagent glossary 140 is to check that the requirements document onlyspecifies that certain actors perform actions.

FIG. 3 shows an example of the mode glossary 144. In the example shownin FIG. 3, the mode glossary 144 defines a mode field 302, anexplanation field 304, and a notes field 306. The mode field 302 definespermissible constituent modes for the actions that an agent may take,such as “must”, or “will”, while the explanation field 304 providesdiagnostic information related to the mode. The diagnostic informationmay expresses issues or concerns about certain modes, may recommend orencourage certain modes, or may provide other mode related informationand feedback.

FIG. 4 shows an example of the action glossary 142. In the example shownin FIG. 4, the action glossary 142 defines an action field 402, anexplanation field 404, a parent field 406, and a notes field 408. Theaction field 402 defines permissible constituent actions for thestructure instance syntax, such as “Define” and “Tag”. The explanationfield 404 provides diagnostic information relevant to the action, how anagent performs the action, or other action related information. Theparent field 406 may be used to build hierarchies of actions, as will bedescribed in more detail below. The additional notes field 408 providesa place where developers may insert information regarding a particularaction and its presence in the action glossary 142. The system 102 mayuse the action glossary 142 to check that the only certain actions arespecified in a requirements document.

FIG. 5 shows an example of the phrase glossary 146. In the example shownin FIG. 5, the phrase glossary 146 defines a problem phrase field 502,an explanation field 504, a suggestion field 506, a priority field 508,and a notes field 510. The problem phrase field 502 defines words orcombinations or words that often give rise to problematic statements.Such problem phrases may define ambiguous or inappropriate words, suchas “could”, or “improved”, particularly in the context of the specificdocument type. The problem phrases may also include industry, domain, ortechnology phrases, such as “Windows Mobile” or “strong encryption.”Thus, the document specific parameter sets tailor the analysis of thesystem 102 to the particular document type.

The explanation field 504 provides a description of why the problemphrase gives rise to difficulties. For example, the problem phrase“could” may be associated with the corresponding explanation of “isambiguous”. The phrase glossary 146 may also define suggestions in thesuggestion field 506, explanation field 504, or both, for how to improvethe problem phrase to a less problematic state. For example, thesuggestion field 506 may suggest that “easy” should be replaced withspecific language, such as “The system will reduce the effort requiredto <function> by x %.” The document reviewer may then adopt thesuggestion, complete the <function> field, and specify a value for ‘x’to improve the statement.

The priority field 508 assigns a priority value to a problem phrase. Thesystem 102 may then prioritize analysis and evaluation of problemphrases. As examples, the system 102 may determine which colors orpatterns to use to highlight problem phrases according to the priorityvalue. As another example, the system 102 may more strongly encouragethe reviewer to modify the problem phrase, provide additionalsuggestions, or take other actions driven by the priority value. Theadditional notes field 510 provides a place where developers may insertinformation regarding a particular problem phrase and its presence inthe phrase glossary 146.

FIG. 6 illustrates examples of a structure identifier 148 and a syntaxdefinition 150 for a requirements specification. The structureidentifier 148 is the regular expression “[A-Za-z0-9*0-9]” 602. Theregular expression specifies that any combination of alphanumericcharacters, followed by a digit, flags the following sentence as arequirement to analyze. The syntax definition 150 is: [agent] [mode][action] [remainder]. The structure category components specified by thesyntax definition are an agent component 604, followed by a modal verbcomponent 606, followed by an action component 608, followed by aremainder component 610 of the rest of the sentence.

FIG. 6 also shows an example requirement 612: “R01: The Developers maycreate an improved user interface.” found in the text of the document132. The system 102 parses the document text, finding first thestructure identifier “R01” that matches the structure identifier 148.According, the requirement sentence that follows is next checked againstthe syntax definition 150. In this instance, the syntax definition,supported by the glossaries 140-144, parse the sentence as follows:Agent=Developers, Mode=may, Action=create, and Remainder=“an improveduser interface.”

The system 102 may carry out document analysis operations based on theanalysis of the document structure instances. In the example shown inFIG. 6, the system 102 highlights each structure category component,using a thin line 614 for the agent, a medium line 616 for the modalverb, and a heavy line weight 618 for the action. The system 102 uses adashed line 620 for the remainder.

In addition, the system 102 applies the phrase glossary 146 against therequirement sentence. As a result, the system 102 identifies theambiguous term “improved” in the requirement sentence, and applies anitalic highlight 622 to emphasize the presence of the problematic word.The system 102 may use any combination of any desired colors, lineweights, line patterns, sounds, animations, icons, or other indicia tohighlight any of the structure components, problem phrases, structureidentifiers, or other parts of the document.

In addition to the syntax definition shown in FIG. 6, additional syntaxdefinitions are also possible. For example, the syntax definition 150may define conditional syntax definitions or feature syntax definitions.Table 1 below lists different examples of syntax definitions definableby the syntax definition 150.

TABLE 1 Syntax Type Syntax Definition Example Structure Instance ExampleStatement [agent] [mode] The order-processing [action] [remainder]system shall send a message to the procurement manager. The user shallclick the button Conditional When [condition], When the user clicks[agent] [mode] the button, the order- [action] [remainder] processingsystem shall send a message to the procurement manager. Conditional: If[condition] then If the user clicks [agent] [mode] the button, theorder- [action] [rest] processing system shall send a message to theprocurement manager. Feature [system-agent] The order-entry[mode][remainder] interface shall have a ‘cancel’ button.

In one implementation, the syntax definition 150 further defines syntaxdefinitions according to a set of controlled document structure instancesyntaxes. For example, the syntax definition 150 may define a documentstructure instance as a requirement document structure instance. Therequirement document structure instance may then be defined as aconditional requirement document structure instance or as a simplerequirement document structure instance. The set of controlled documentstructure instance syntaxes may also define additional syntaxes for thesimple requirement document structure instance or the conditionalrequirement document structure instance. For example, the set ofcontrolled document structure instance syntaxes may define the simplerequirement document structure instance as a standard requirementdocument structure instance, as a business rule document structureinstance, or as any other type of document structure instance. Table 2illustrates one example of a set of controlled document structuresyntaxes that may be defined according to the syntax definition 150.Other types of syntaxes may also be defined.

TABLE 2 Syntax Syntax Type Identifier Syntax Brief ExplanationRequirement Req. Req. −> ConditionalReq | A requirement may be aSimpleReq simple requirement or a conditional requirement. ConditionalConditionalReq. [“if”][condition][“then”] A conditional requirement[SimpleReq]; or may be an ”if-then”, “if- [“if”][condition][“then”]then-else”, or “when” kind [SimpleReq][“else”] of document structure[SimpleReq]; or instance. It may be either a [“when”][condition]functional requirement or [SimpleReq] business rule depending on thetext of the document structure instance. Standard StandardReq [Agent][ModalWord] A standard requirement [Action] [Rest] may be an agentfollowed by a modal word, followed by an action (verb), followed by theremainder of the document structure instance. Business Rule BusinessRule[“all” | “only” | A business rule may be “exactly”] [Rest] any documentstructure instances that starts with “all”, “only” or “exactly”.Remainder Rest [rest] −> [Secondary The rest of sentence may Agent |Secondary contain a number of Action] secondary agents and actions fromtheir respective glossaries.

FIG. 7 illustrates an example of a requirements analysis system 702. Inthe example shown in FIG. 7, the requirements analysis system 702includes the document analysis module 126 in communication with adocument under analysis 132 and the first document specific parameterset 138. The document analysis module 126 may also be in communicationwith the document analysis database 124 to retrieve one or more documentspecific parameter sets 706-708. The analysis module 126 is also incommunication with the processor 116, the network interface 120 andvarious other input/output devices 122. As shown in FIG. 7, the documentspecific analysis module is in communication with the display 125, whichmay display an electronic representation 710 of the document underanalysis 132 and a graphical user interface 712 for interacting with thedocument analysis module 126.

In general, the document analysis module 126 is operative to analyze thedocument instances 134-136 of the document under analysis 132. Forexample, when analyzing the document structure instance 134, thedocument analysis module 126 may determine whether the documentstructure instance 134 is a requirement statement. The pseudo-codesbelow illustrate several methods that the document analysis module 126may perform in determining whether the document structure instance 134is a requirement statement according to the syntax definition 150. Thefirst pseudo-code below illustrate one method that the document analysismodule 126 may use to determine whether the document structure instance134 contains a structure identifier:

  isRequirement (Document structure instances)  if the first word of thedocument structure instances has a  structure identifier:   return true end if   else    return false   end else end isRequirement

In addition, the document analysis module 126 may determine whether thedocument structure instance 134-136 includes any of the constituents inglossaries 140-146 consistent with the syntax definition 150. Morespecifically, the document analysis module 126 may determine whether adocument structure instance 134, such as a requirements statement of arequirements document, includes a constituent from the agent glossary140. In an alternative example, the document analysis module 126 maydetermine whether a document structure instance 134 includes aconstituent from the phrase glossary 146, the mode glossary 144, theaction glossary 142, or another glossary from another document parameterset 704-708.

The pseudo-code below illustrates one method for identifying whether thedocument structure instance 134 contains an agent constituent:

  FindAgent(Document structure instance s)  For each agent_(i) inAgentGlossary   If agent_(i) is the first phrase in the documentstructure instance after  the structure identifier    return true   endif  end for  return false end FindAgent

The pseudo-code below illustrates one method for identifying whether thedocument structure instance 134 contains a mode constituent:

  FindMode(Document structure instance s)  For each mode in ModeGlossary  If mode is the second phrase in the document structure instance  afterthe agent phrase    return true   end if  end for  return false endFindMode

The pseudo-code below illustrates one method for identifying whether thedocument structure instance 134 contains an action constituent

  FindAction(Document structure instance s)  For each action inActionGlossary   If action is the third phrase in the document structureinstance  after the mode phrase    return true   end if  end for  returnfalse end FindAction

The pseudo-code below illustrates one method for identifying whether thedocument structure instance 134 contains a constituent from the phraseglossary 146:

  FindPhrase(Document structure instance s)  For each phrase_(i) inPhraseGlossary   If phrase_(i) occurs in the document structure instance   return true   end if  end for  return false end FindPhrase

The document analysis module 126 may further perform a document analysisoperation based on whether the document structure instances 134-136include any of the constituents in a glossary 140-146 consistent withthe syntax definition 150. Examples of performing a document analysisoperation include identifying a problematic constituent, identifying aconstituent from the glossaries 140-146 contained in the documentstructure instances 134-136, identifying that the document structureinstances 134-136 do not contain a constituent from the glossaries140-146, or identifying whether the document structure instances 134-136are consistent with the syntax definition 150. In addition, where thedocument analysis module 126 identifies an error or issue in theanalyzed document structure instance, the document analysis module 126may provide a suggestion for correcting or rectifying the identifiederror or issue.

The document analysis module 126 may also communicate with the inferenceengine 106 to determine whether one or more document structuresinstances 134-136 conflict using the document parameter set 138. Forexample, the document parameter set 138 may include one or more documentstructure rules relating to the substantive nature of the documentstructure instances 134-136. The document analysis module 126 maytransmit the document structure instances 134-136, along with thedocument structure rules, to the inference engine 106 to determinewhether the document structure instances 134-136 substantively conflict.

For example, suppose that the document structure rules include a rulestating that “Encryption delays a message by five seconds,” and thedocument structure instances include first a document structure instancestating that “The system will encrypt all messages” and a seconddocument structure instance stating that “The system will send allmessages in less than five seconds.” By transmitting the documentstructure rule along with each of the two document structure instancesof the above example to the inference engine 106, the document analysismodule 126 is able to report that the document structure instancesconflict with one another.

The document analysis module 126 may also use a constituent hierarchyparameter, such as the parent field 206 of the agent 140, when analyzingthe document structure instances 134-136. The document analysis module126 may use the constituent hierarchy parameter to identify whether thedocument structure instances 134-136 conflict with a document structurerule. For example, as shown in FIG. 2, the parent field 206 of the agentglossary 140 identifies that “developers” are subordinate to“development team.” Where a document structure rule states that “Only adevelopment team shall contact suppliers” and a document structureinstance states that “Developers will contact suppliers,” the documentanalysis module 126 determines that the document structure instance doesnot conflict with the document structure rule.

As another example of using document structure rules to analyze documentstructure instances, suppose that a first business rule states that “Ifan order is to be delivered, the patron must pay by payroll deduction”and a second business rule states that “Only permanent employees mayregister for payroll deduction for any company purchase.” The system 102may then infer that the inferred business rule from the first and secondbusiness rule is that “Only a permanent employee can specify that anorder can be picked up.” Accordingly, the document analysis module 126may output an alert where a document structure instance states that “ThePatron shall specify whether the order is to be picked up or delivered.”The document analysis module 126 may also communicate with the inferenceengine 106 to perform the analysis on the document structure instances134-136 using the document structure rules.

The document analysis module 126 may also determine whether the documentunder analysis 132 contains document structure instances 134-136 of aspecific type of document structure instance. For example, the documentanalysis module 126 may compare the document parameter set 138 todetermine that the document under analysis 132 does not contain documentstructure instances of a security type. The document analysis module 126may also determine whether the document structure instances 134-136 arecomplete. For example, a document structure instance conforming to aconditional syntax definition may have an “if” statement and no “else”statement. In this example, the document analysis module 126 may outputan alert indicating that the document structure instance is anincomplete conditional structure instance.

The document analysis module 126 may also determine whether the documentstructure instances satisfy a priority given to a property or otherdocument structure instance. For example, the document parameter set 138may specify that user interface document structure instances are giventhe highest priority level. In analyzing the document under analysis132, the document analysis module 126 may determine and identify whetherany of the document structure instances are directed to a userinterface.

In addition, the document analysis module 126 may further identifydocument structure instances for which a complementary documentstructure instance appears to be missing. For example, a documentstructure instance may specify that “System X will send an alert toSystem Y.” The document analysis module 126 is operative to determinewhether a similar document structure instance states that System Yshould process alerts sent by System X.

The document analysis module 126 may also be in communication with agraphical user interface 712 for communicating analysis messagesrelating to the analysis of document structure instances 134-136. FIG. 8shows one example of a graphical user interface 712 for communicatinganalysis messages relating to the analysis of a document structureinstance. The graphical user interface 712 shown in FIG. 8 has beenconfigured to communicate analysis messages associated with the phraseglossary 146. Other graphical user interfaces may also be configured foreach of the other glossaries, including the agent glossary 140, theaction glossary 142, and the mode glossary 144.

The graphical user interface 712 associated with the phrase glossary 146includes several control parameters 814-822, including an “ignore thisrequirement” control parameter 814, a “change” control parameter 820, an“undo” control parameter 816, a “cancel” control parameter 818, and a“revert to original” control parameter 822. Each of the controlparameters 814-822 are associated with an instruction for the documentanalysis module 126. For example, selecting the “ignore thisrequirement” control parameter 814 instructs the document analysismodule 126 that it should ignore the analyzed document structureinstance; selecting the “change” control parameter 820 instructs thedocument analysis module 126 that it should change the documentstructure instance; selecting the undo control parameter 816 instructsthe analysis module 126 that it should undo the last change applied tothe document structure instance; selecting the cancel control parameter818 instructs the document analysis module 126 that it should cancel theanalysis of the document structure instance; and, selecting the revertto original control parameter 822 instructs the document analysis module126 that it should revert the document structure instance to itsoriginal form as it appeared before the analysis by the documentanalysis module 126.

The graphical user interface 712 also includes several different textfields 824-830. The text fields 824-830 include a document structureinstance text field 824, an explanation text field 826, an instructiontext field 828, and a suggested change text field 830. The text fields824-830 may be associated with fields 502-506 of the phrase glossary146, with fields from the document parameter set 138, or with fieldsfrom the document analysis database 124. For example, as shown in FIG.8, the suggested text field 830 of the graphical user interface 712 isassociated with the suggestion field 506 of the phrase glossary 146.Similarly, the explanation text field 826 is associated with theexplanation field 504 of the phrase glossary 146. The document analysismodule 146 is operative to populate the text fields 828-830 with theanalysis messages of their associated fields. Other graphical userinterfaces associated with the other glossaries 140-144 may includeadditional or fewer control parameters, or additional or fewer textfields.

In FIG. 8, the document analysis module 126 is analyzing documentstructure instances 832 using the constituent “easy” from the phraseglossary 146. The document analysis module 126 has identified anambiguous phrase 834 in one of the document structure instances. Havingidentified a constituent from the phrase glossary 146, the documentanalysis module 126 has retrieved several analysis messages associatedwith the constituent “easy” and has populated the text fields 824-830 ofthe graphical user interface 712 with those analysis messages. Thedocument analysis module 126 has populated the document structureinstance text field 824 with the text of the document structure instancehaving the found constituent. The document analysis module 126 has alsopopulated the explanation text field 826 with an analysis messageindicating the reason for identifying the constituent of the documentstructure instance. The document analysis module 126 has furtherpopulated the instruction text field 828 with an analysis messageindicating how to resolve the identified issue presented in theexplanation text field 826, and the document analysis module 126 haspopulated the suggested text field 830 with analysis messages to replacethe text of the identified constituent or the text of the analyzeddocument structure instance.

The text fields 824-830 may also be associated with the controlparameters 814-822. For example, in one implementation, the suggestedtext field 830 is associated with the change control parameter 820.Thus, when an analysis message is selected from the suggested text field830 and the change control parameter 820 is activated, the documentanalysis module 126 may replace the document structure instance text inthe document structure instance text field 824 with the selectedanalysis message from the suggested text field 830. The documentanalysis module 126 may further change the document under analysis toreflect the changes made to the analyzed document structure instance ofthe document under analysis.

In addition that the graphical user interface 712 of FIG. 8 may indicatethat the document analysis module 126 has found a constituent from thephrase glossary 146 in the analyzed document structure instance, othergraphical user interfaces may indicate that the document analysis module126 has not found a constituent from other glossaries. For example, agraphical user interface associated with the agent glossary 140 maypresent an analysis message indicating that the document analysis module126 did not find an agent constituent in the analyzed document instance.Similarly, a graphical user interface associated with the actionglossary 140 may present an analysis message indicating that thedocument analysis module 126 did not find an action constituent in theanalyzed document instance. More generally, the requirements analysissystem 702 may be configured such that a graphical user interface isassociated with each of the document parameters of the documentparameter sets for displaying the analysis of the document analysismodule 126.

FIG. 9 shows logic flow for a requirements analysis system 702. Thedocument analysis module 126 receives the document parameters, such asthe glossaries 140-146 or the constituents of the glossaries 140-146,from the document parameter set 138 (902). The document analysis module126 then receives the document for analysis (904). In starting theanalysis of the document, the document analysis module identifies afirst document structure instance, such as document structure instance134 (906). The document analysis module 126 may not identify anydocument structure instances, in which case, the document analysismodule 126 may display a graphical user interface with an analysismessage indicating that the document analysis module 126 did notidentify any document structure instances.

Where the document analysis module 126 identifies a document structureinstance, the document analysis module 126 then identifies a firstglossary in the document specific parameter set (908). The firstglossary may be any of the glossaries 140-146. The first glossary mayalso be a glossary stored in the document analysis database 124.Alternatively, or in addition, the document analysis module 126 mayreceive a structure category component selection value that indicatesthe structure category component to start the analysis. For example, thedocument analysis module 126 may receive a structure category componentselection value corresponding to the action category component, in whichcase, the document analysis module 126 begins the analysis of thedocument structure instance with the action glossary 142.

The document analysis module 126 then begins analyzing the documentstructure instance to determine whether the document structure instancecontains any of the constituents in the first glossary (910). In oneimplementation, the document analysis module 126 compares each of theconstituents of the first glossary with the document structure instance.After the analysis, the document analysis module 126 presents theresults of the analysis, such as through the graphical user interface712 (912).

Based on the results of the analysis, the document analysis module 126may decide to perform a document analysis operation, pre-configured orotherwise, based on the results of the analysis (914). Examples ofperforming a document analysis operation include some of the examplespreviously mentioned above, but also include, displaying a graphicaluser interface, retrieving an analysis message, or terminating theanalysis operation of the document structure instance. Where thedocument analysis module 126 decides to perform a document analysisoperation (916), the document analysis module 126 may use the graphicaluser interface 712 to present an analysis message associated with theresults of the analysis. For example, where the document analysis module126 determines that the document structure instance does not have anaction constituent from the action glossary 142, the document analysismodule 126 uses the graphical user interface 712 to present an analysismessage relating to the absence of the action constituent and a controlparameter for adding an action constituent to the analyzed documentstructure instance. Alternatively, or in addition, the document analysismodule 126 may be pre-configured to apply a change to the documentstructure analysis based on the results of the analysis and of thecategory component associated with the first glossary. The documentanalysis module 126 may perform more than one document analysisoperation on the analyzed document structure instance.

The document analysis module 126 then determines whether the documentparameter set contains additional glossaries (918), and if so,identifies the next glossary in the document parameter set with which touse in analyzing the document structure instance (920). When thedocument analysis 126 determines that there are no additional glossarieswith which to use in analyzing the document structure instance, thedocument analysis module 126 then proceeds to determine whether thereare additional document structure instances to identify (922). If so,the document analysis module 126 identifies another document structureinstance (922), and proceeds through the analysis of the additionalidentified document structure instance as described above. After thedocument analysis module 126 determines that there are no additionaldocument structure instances to analyze, the document analysis module126 terminates its analysis of the received document.

FIG. 10 shows a requirements commenting system 1002. In the system shownin FIG. 10, the requirements commenting system 1002 includes componentssimilar to those described with reference to FIG. 7 and the requirementsanalysis system 702. However, the requirements commenting system 1002may further include the document commenting module 128.

In general, the document commenting module 128 is operative to commenton the document instances 134-136 of the document under analysis 132.For example, the document commenting module 128 may determine whetherthe document structure instance 134-136 includes any of the constituentsin glossaries 140-146 consistent with the syntax definition 150. Morespecifically, the document commenting module 128 may determine whether adocument structure instance 134, such as a requirements statement of arequirements document, includes a constituent from the agent glossary140. In an alternative example, the document commenting module 128 maydetermine whether a document structure instance 134 includes aconstituent from the phrase glossary 146, the mode glossary 144, theaction glossary 142, or another glossary from another document parameterset 704-708.

The document commenting module 128 may further output an analysismessage based on the analysis performed by the document commentingmodule 128. In one implementation, outputting an analysis messageincludes embedded an analysis message as a comment in the electronicrepresentation 710 of the document under analysis 132. The pseudo-codebelow illustrates one method performable by the document commentingmodule 128 in retrieving analysis messages and embedding the analysismessages as comments in the electronic representation 710 of thedocument under analysis 132:

  ProcessRequirements (Document reqDoc)  For each document structureinstance s in reqDoc   If (isRequirement(s) is true)    If (findAgent(s) = true)     Mark agent    Else     Output (″No Agent Found″)    return    End if    If (findMode (s) = true)     Mark mode    Else    Output (″No Mode Found″)     return    End if    If (findAction (s)= true)     Mark action    Else     Output (″No Action Found″)    return    End if    Mark rest of sentence    If (findPhrase (s) =true)     Mark phrase     Output (″Phrase used in requirement″)    Endif   End if  End For End ProcessRequirements

The document commenting module 128 may further perform one or more ofthe analyses as described above with reference to the document analysismodule 126.

FIG. 11 shows analysis messages embedded as comments 1102-1108 in anelectronic representation 710 of a document under analysis 132. Theembedded comments 1102-1108 include a phrase embedded comment 1102, anagent embedded comment 1104, and action embedded comments 1106-1108.Each of the embedded comments have analysis messages associated with aglossary 140, 142, and 146. For example, the phrase embedded comment1102 has an analysis message associated with the phrase glossary 146,the agent embedded comment 1104 has an analysis message associated withthe agent glossary 140, and the action embedded comments 1106-1108 haveanalysis messages associated with the action glossary 142. Moreover, thedocument commenting module 128 may identify a specific constituentthrough the embedded comments 1102-1108, such as identifying theconstituent “easy” as shown in FIG. 11.

Furthermore, the document commenting module 128 may indicate in theelectronic representation 710 the structure category component of thedocument instances of the document under analysis 132 with markings614-620. Using the markings 614-620 as discussed above with reference toFIG. 6, the document commenting module 128 may use a thin line 614 forthe agent, a medium line 616 for the modal verb, and a heavy line weight618 for the action. The document commenting module 128 may further use adashed line 620 for the remainder.

FIG. 12 shows logic flow for the requirements commenting system 1002.The document commenting module 128 receives the document parameters,such as the glossaries 140-146 or the constituents of the glossaries140-146, from the document parameter set 138 (1202). The documentcommenting module 128 then receives the document for analysis (1204). Instarting the analysis of the document, the document commenting module128 identifies a first document structure instance, such as documentstructure instance 134 (1206). The document commenting module 128 maynot identify any document structure instances, in which case, thedocument commenting module 128 may display an analysis messageindicating that no document structure instances were identified.

Where the document commenting module 128 identifies a document structureinstance, the document commenting module 128 then identifies a firstglossary in the document specific parameter set (1008). The firstglossary may be any of the glossaries 140-146. The first glossary mayalso be a glossary stored in the document analysis database 124.Alternatively, or in addition, the document commenting module 128 mayreceive a structure category component selection value that indicatesthe structure category component to start the analysis. For example, thedocument commenting module 128 may receive a structure categorycomponent selection value corresponding to the action categorycomponent, in which case, the document commenting module 128 begins theanalysis of the document structure instance with the action glossary142.

The document commenting module 128 then begins analyzing the documentstructure instance to determine whether the document structure instancecontains any of the constituents in the first glossary (1210). In oneimplementation, the document commenting module 126 compares each of theconstituents of the first glossary with the document structure instance(1212).

Where the document commenting module 128 determines that the documentstructure instance contains a constituent from the first glossary, thedocument commenting module 128 then proceeds to determine whether thedocument structure instance should contain the constituent (1214). Ifthe document commenting module 128 determines that the documentstructure instance should contain the identified constituent, thedocumenting commenting module 128 indicates in the document structureinstance the identified constituent (1216). For example, the syntaxdefinition 150 defines that a requirement statement should contain anaction category component. Accordingly, the document commenting module128 will mark a document structure instance where the documentcommenting module 128 finds an action constituent in the documentstructure instance.

However, If the document commenting module 128 determines that thedocument structure instance should not contain the identifiedconstituent, the documenting commenting module 128 retrieves an analysismessage from the document parameter set 138 and embeds the analysismessage in the electronic representation 710 of the document underanalysis 132 (1218). For example, the phrase glossary 146 containsconstituents that should not appear in a document structure instance. Inthis example, where the document commenting module 128 identifies aconstituent from the phrase glossary 146 in the document structureinstance, the document commenting module 128 embeds an analysis messageassociated with the identified constituent.

Alternatively, the document commenting module 128 may determine that thedocument structure instance does not contain a constituent from thefirst glossary. In this case, the document commenting module 128determines whether the document instance structure should contain aconstituent from the glossary. If the document structure instance shouldcontain a constituent from the glossary, the document commenting module128 retrieves an analysis message associated with the missingconstituent or glossary, and embeds the analysis message in theelectronic representation 710 of the document under analysis 132 (1218).Alternatively, if the document structure instance should not contain aconstituent from the glossary, the document commenting module 128 thenproceeds to determine whether there are additional glossaries (1220) inthe document parameter set 138.

As an example of the above described logic flow, the syntax definition150 defines that a requirements statement should contain an actioncategory component. Where the document commenting module 128 identifiesa requirements statement, but further identifies that the requirementsstatement is missing an action category component, the documentcommenting module 128 embeds an analysis message in the electronicrepresentation 710 of the document under analysis 132 indicating thatthe requirements statement is missing an action category component.

After marking the document structure instance (1216), embedding ananalysis message (1218), or determining that the document structureinstance should not contain a constituent from the first glossary(1220), the document commenting module 128 proceeds to determine whetherthere are additional glossaries in the document parameter set 138(1220). If the document commenting module 128 determines that there areadditional glossaries, the document commenting module 128 identifies thenext glossary (1222) and proceeds to analyze the document structureinstance using the identified glossary (1210). However, if the documentcommenting module 128 determines that there are no remaining glossariesto use in analyzing the identified document structure instance, thedocument commenting module 128 proceeds to determine whether there areadditional document structure instances remaining in the document underanalysis 132 (1224). If there are remaining document structureinstances, the document commenting module 128 identifies the nextdocument structure instance (1226) and proceeds to analyze theidentified next document structure instance as described above. Wherethere are no remaining document structure instances and no remainingglossaries, the document commenting module 128 terminates its analysisand commenting.

Although the logic flow described above illustrates some of the actionsof the document commenting module 128, the actions described are notexhaustive. For example, the document commenting module 128 may mark aremainder component of the document structure instances.

FIG. 13 shows a report generator system 1302. In the system shown inFIG. 13, the report generator system 1002 includes components similar tothose described with reference to FIG. 7 and the requirements analysissystem 702. However, the report generator system 1302 may furtherinclude the document reporting module 130. The document reporting module130 may be configured to analyze electronic documents and documentstructure instances as described above with reference to the documentanalysis module 126.

In general, the document reporting module 130 is operative to generatereports organized by constituent and document structure instancedocument reporting module 130. More specifically, the document reportingmodule 130 is operative to generate a report associating constituentswith document structure instances that contain those constituents andare consistent with the syntax definition 150. In general, the documentreporting module 130 is operative to receive a structure categorycomponent value and generate a report using the received structurecategory component value.

FIG. 14 shows an example report 1402 generated by the document reportingmodule 130 using an action category component value. The example report1402 contains a constituent column 1404 and an identified requirementsstatement column 1406. In the example report 1402, the constituentcolumn 1404 contains rows of agent constituents and the requirementsstatement column 1406 contains rows of requirement statements associatedwith the agent constituent identified in the constituent column 1404.However, the constituent column 1404 may include other constituents suchas action constituents, mode constituents, or other constituents,depending on the structure category component value received by thedocument reporting module 130. The document reporting module 130 mayalso be pre-configured to generate a report using a specific documentstructure category component.

FIG. 15 shows logic flow for the report generator system 1302. Thedocument reporting module 130 receives the document parameters, such asthe glossaries 140-146 or the constituents of the glossaries 140-146,from the document parameter set 138 (1502). The document reportingmodule 130 then receives the document for analysis (1504). Afterwards,the document reporting module 130 receives a structure categorycomponent selection value for selecting a glossary by which to analyzethe received document. (1506)

In starting the report of the received document, the document reportingmodule 130 selects a first constituent from the selected glossary(1508). The document reporting module 130 then compares the selectedfirst constituent with the document structure instances of the receiveddocument (1510). As the document reporting module 130 is comparing theselected first constituent with the document structure instances, thedocument reporting module 130 maintains a list of document structureinstances that contain the selected first constituent according to thesyntax definition 150. It is possible that none of the documentstructure instances contain the selected first constituent or containthe selected first constituent consistent with the syntax definition150.

After comparing the selected first constituent with the documentstructure instances, the document reporting module 130 then determineswhether there are additional constituents in the selected glossary(1514). Where the document reporting module 130 determines there areadditional constituents in the selected glossary, the document reportingmodule 130 selects the next constituent in the selected glossary (1516),and proceeds to compare the selected next constituent with the documentstructure instances in the received document (1510). The documentreporting module 1530 also maintains a list of document structureinstances that contain the selected next constituent consistent with thesyntax definition 150.

Where the document reporting module 130 determines that the selectedglossary does not contain additional constituents, the documentreporting module 130 outputs a report containing the list ofconstituents from the selected glossary and the maintained lists ofdocument structure instances containing the constituents consistent withthe syntax definition 150 (1518). In some instances, a list associatedwith a constituent may be an empty list. The document reporting module130 may output more than one report depending on the number of selectedglossaries and the number of received documents.

FIG. 16 shows an example of an agent taxonomy 1602. The agent taxonomy1602 illustrates a hierarchical relationship between agent constituentscontained in an agent glossary 140. For example, the agent taxonomy 1602illustrates that a “supplier manager” is a type of “Manager.” Similarly,FIG. 17 shows an example of an action taxonomy 1702. The action taxonomy1702 illustrates a hierarchical relationship between action constituentscontained in an action glossary 142. For example, the action taxonomy1702 shows that the verb “e-mail” is a more specific verb for “Send.”The agent taxonomy 1602 or the action taxonomy 1702 may be used as partof a domain knowledge based analysis to determine whether there is aconflict among document structure instances, or, more specifically,requirements statements. For example, the document analysis, commenting,and reporting system 102 may include one or more business rules forresolving conflicts between requirement statements using an agentglossary 140 configured with the agent taxonomy 1602, the actionglossary 142 configured with the action taxonomy 1702, or other glossaryconfigured with another type of taxonomy. The document analysis,commenting, and reporting system 102 may also be configured to identifysimilar document structure instances, such as “The purchasing systemsends the order to the user” and “The purchasing system faxes the orderto the user,” using the agent taxonomy 1602, the action taxonomy 1702,or an additional or alternative taxonomy.

FIG. 18 shows an example of an ontology model 1800. In oneimplementation, the ontology model 1800 defines an ontology hierarchy1802. The ontology model 1800 may be described using the OWL WebOntology Language. However, the ontology model 1800 may also bedescribed using other languages such as the Resource DescriptionFramework (RDF) or the Knowledge Interchange Format (KIF).

The ontology hierarchy 1802 comprises document structure instanceclasses related as root classes and child classes. For example, FIG. 18shows that the ontology hierarchy 1802 starts with a root requirementclass 1804 and that the root requirement class 1804 has two childclasses, a security requirement class 1806 and a time requirement class1820. In addition, the security requirement class 1806 is a root classof two child classes, an encryption class 1808 and an authenticationclass 1814. Similarly, the time requirement class 1820 is a root classof two child classes, a response time class 1822 and a network timeclass 1824 Additional child classes include an SSH class 1810, an RSAclass 1812, a security token class 1816, and a password class 1818. Asshown in FIG. 18, the SSH class 1810 and the RSA class 1812 are childclasses of the encryption class 1808, and the security token class 1816and the password 1818 are child classes of the authentication class1814.

FIG. 18 also shows that the ontology hierarchy 1802 defines classrelationships between the root classes and their associated childclasses. For example, FIG. 18 shows that the ontology model 1800includes a horizontal class definition relationship 1828 and a verticalclass definition relationship 1826. In general, horizontal classdefinition relationships define relationships between classes unrelatedto hierarchy, and vertical class definition relationships definehierarchical relationships between classes. In the example shown in FIG.18, the horizontal class definition relationship 1828 is an “affects”relationship, and shows that the security requirement class 1806 affectsthe time requirement class 1820. In addition, FIG. 18 shows that thevertical class definition relationship 1826 is an “is A” relationshipthat shows that the time requirement class 1820 is a child class of therequirement class 1804. Examples of class definition relationships areshown below in Table 3.

TABLE 3 Relationship Type Description Affect Classifications that affecteach other. Contradict Classifications that contradict each otherDependency Classifications that depend on each other ImplementClassification that implements a higher-level classification SimilarityClassifications that are similar to each other isA Classifications thatare special cases of other classifications

FIG. 18 also shows that the ontology model 1800 may further includeinstance class search terms that facilitate analysis of documentstructure instances against the ontology model 1800. Examples ofinstance class search terms are the encryption class search terms 1830“encrypt” and “encrypted.”Instance class search terms may be used toassociate document structure instances with a class. Other examples ofinstance class search terms may be “SSH,” “RSA,” “authenticate,”“password,” or any other search term associated with the classesincluded in the ontology model 1800. However, other properties may beused to associate a document structure instance with one or moreclasses.

Turning next to FIG. 19 is an example of an ontology analysis system1900. The ontology analysis system 1900 may include one or morecomponents of the document analysis, commenting, and reporting system102. In one implementation, the memory 118 stores classification logic1902 and relationship analysis logic 1906 for analyzing a document underanalysis 132 using the ontology model 1800. The document analysisdatabase 124 may also include additional ontology models other thanontology model 1800.

As shown in FIG. 19, the ontology model 1800 includes a root class 1910,such as the requirement class 1804, and child classes 1912, such as thesecurity requirement class 1806 and the time requirement class 1820. Theontology model also includes class definition relationships 1914, suchas horizontal relationship 1828 and vertical relationships 1826, andincludes instance class search terms, such as the encryption instanceclass search terms 1830.

The classification logic 1902 is operative to analyze document structureinstances 134-136 against the ontology model 1800 to determineclassifications for the document structure instances among the documentstructure instance classes. In one implementation, the classificationlogic 1902 examines each of the structure instances 134-136 in adocument under analysis 132, and when a document structure instanceincludes a search term associated with a class in the ontology model1800, the classification logic 1902 assigns an instance classificationto the document structure instance based on the found search term andthe class associated with the found search term. However, theclassification logic 1902 may assign an instance classification to adocument structure using another property of the document structureinstance other than search term.

In addition, the classification logic 1902 may communicate with theinference engine 106 to use a knowledge model to determine that thedocument structure instance is an instance of a class associated withthe found search term. In one implementation, the inference engine 106is a Jena inference engine, available from the Hewlett-PackardDevelopment Company, LP located in Palo Alto, Calif. However, theinference engine 106 may be other reasoning engines such as Jess,available from the Sandia National Laboratories located in Livermore,Calif. or Oracle 10G, available from the Oracle Corporation located inRedwood Shores, Calif. The pseudo-code below illustrates oneimplementation of the classification logic 1902 when the classificationlogic 1902 uses the encryption instance class search terms 1830:

  CreateRequirementInstance (Requirement R, Ontology ont, Model m)  Foreach class, in Ontology ont   If class_(i) or searchterms (class_(i))occur in R    m.assert (R is a instance of classi)   end if  end For endCreatementInstance where: searchterms (class_(i)) is list of searchterms for an class in an ontology, such as ″{encrypt, encrypted}.″

As one example of the classification logic 1902 in operation, supposethat a first document structure instance states that “The messagingsystem will encrypt all its responses using SSH” and a second documentstructure instance states that “The messaging system will have aresponse time of 5 milliseconds.” In this example, the classificationlogic 1902 will assert the first document structure instance as aninstance of the encryption class 1808 and the SSH class 1810. Theclassification logic 1902 will also assert the second document structureinstance as an instance of the response time class 1822. Theclassification logic 1902 may further maintain these assertions as partof the instance classifications 1904.

In addition to the classification logic 1902, the relationship analysislogic 1906 is operative to whether the document structure instances134-136 affect each other. The relationship analysis logic 1906 may alsooperate in conjunction with the classification logic 1902 to determinethe document structure instances 134-136 that affect each other. Therelationship analysis logic 1906 may further use a knowledge model fordetermining the document structure instances 134-136 that affect eachother. The relationship analysis logic 1906 may also find relateddocument structure instances, complimentary document structureinstances, or other document structure instances. The pseudo-code belowillustrates one example of the relationship analysis logic 1906:

  FindAffectedRequirements(Document d, Ontology ont, Model m) m.loadOntology (ont)   For each Requirement r in a document   CreateRequirementInstance (R, ont, m)   End For m.executeQuery(SELECT ?R1, ?R2 WHERE  {?R1 RDF.Type Requirement ?R2    RDF.Type Requirement .?R1 affects ?R2}) End FindAffectedRequirementswhere: the m.executeQuery is a SPARQL query that returns any twoinstances of class Requirement (R1 and R2) that affect each other.

As shown above, the relationship analysis logic 1906 uses the SPARQLquery language. However, the relationship analysis logic 1906 may useother query languages, such as SQL, the JESS Rules language, LISP, orany other query language.

FIG. 20 shows logic flow for an ontology analysis system 1900. Theontology analysis system 1900 initially retrieves one or more documentparameter sets from the document analysis database 124 (2002). Aspreviously discussed, a document parameter set may include one or moreglossaries, structure identifies, syntax definitions, or otherparameters. The ontology analysis system 1900 then receives the documentunder analysis 132 (2004). Thereafter, the ontology analysis system 1900retrieves an ontology model 1800 (2006). The ontology analysis system1900 may also retrieve additional ontology models from the documentanalysis database 124.

Using the retrieved ontology model and the classification logic 1902,the ontology analysis system 1900 classifies the document structureinstances of the document under analysis 132 based on whether thedocument structure instances contain associated instance class searchterms 1916 (2008). For example, the classification logic 1902 may beoperable to operable to search for instance class search terms 1916 inone or more document structure instances. The ontology analysis system1900 may also maintain a set of instance classifications 1904 that maybe identifiers or other data that assign one or more classes to adocument structure instance.

After classifying the document structure instances, the ontologyanalysis system 1900 may then use the relationship analysis logic 1906to determine whether there are horizontal class definition relationshipsbetween the document structure instances using the instanceclassifications 1904 and the ontology model 1800 (2010). The ontologyanalysis system 1900 may also communicate with an inference engine 106to classify the document structure instances or to analyze the classdefinition relationships between the document structure instances.

Following the classification (2008) and relationship analysis (2010) ofthe document structure instances, the ontology analysis system 1900 mayoutput an analysis result showing the results of the classification andrelationship analysis (2012). As one example of an analysis result, theontology analysis system 1900 may insert a relationship notificationmessage into the document the document under analysis 132. Additionaltypes of analysis results are also possible.

The description above explained the role of several types of glossaries140-146, such as the agent glossary 140 that defines permissible agents.In addition to the glossaries 140-146, the document analysis,commenting, and reporting system 102 may also include other types ofglossaries, such as a requirements relationship glossary. FIG. 21 showsone example of a requirements relationship glossary 2102. Therequirements relationship glossary 2102 may define relationships betweenclasses of an ontology model. The requirements relationship glossary2102 may also define relationships between the structure categorycomponents of a document structure instance.

In one implementation, the requirements relationship glossary 2102includes a class category 2104, a parent class category 2106, a keywordscategory 2108, and a relationship category 2110. Other implementationsof the requirements relationship glossary 2102 may include othercategories. The class category 2104 may identify a class from anontology model. The parent class category 2106 may identify a parentclass for a given class from the class category 2104. The keywordscategory 2108 may include keywords that facilitate analysis of documentstructure instances. Examples of keywords associated with anauthentication class may include “password,” “token,” “authentication,”and “Kerberos.” The keywords may be used to associate document structureinstances with a class. Alternatively, or in addition, the keywords maybe used to associate a structure category component with a class. Therelationship category 2110 may identify whether the given class has arelationship with another class. For example, a security class structurecategory component may affect a time structure category component.

FIG. 22 is an example of a requirements graphing system 2202. In theexample shown in FIG. 22, the requirements graphing system 2202 includesa graphing module 2204 in communication with a document under analysis132 and a document specific parameter set 2206. The graphing module 2204may also be in communication with the document analysis database 124 toretrieve one or more document specific parameter sets 706-708. In oneimplementation, the graphing module 2204 is in communication with thedocument parameter set 2206 that includes the agent glossary 140, themode glossary 144, the structure identifiers 148, the action glossary142, the phrase glossary 146, the syntax definitions 150, and therelationship glossary 2102. The graphing module 2204 may also be incommunication with the processor 116, the network interface 120 andvarious other input/output devices 122. As shown in FIG. 22, thegraphing module 2204 is in communication with the display 125, which maydisplay an electronic representation 2208 of an ontology hierarchy forthe document under analysis 132.

Although the graphing module 2204 is shown as integrated as part of therequirements graphing system 2202, the graphing module 2204 may beintegrated as part of any other system. For example, the graphing module2204 may be incorporated into the document analysis, commenting, andreporting system 102, the requirements analysis system 702, therequirements commenting system 1002, the report generator system 1302,or the ontology analysis system 1900. In other implementations, thegraphing module 2204 is accessed through remote procedure calls, webservices, or other interfaces to obtain an image to render on thedisplay 125.

The graphing module 2204 includes logic that generates or modifies anontology hierarchy using the document parameter set 2206 and thedocument instances 134-136 of the document under analysis 132. Forexample, the graphing module 2204 may first identify a documentstructure instance in the document under analysis 132 (2210). Thegraphing module 2204 may then select or identify a structure categorycomponent from the identified document structure instance, such as anagent action or other structure category component (2212). Thereafter,the graphing module 2204 may generate an ontology hierarchy thatincludes the identified structure category component (2214). In oneimplementation, the graphing module 2204 is operative to generate anontology hierarchy that includes each of the structure categorycomponents from an identified document structure instance (2216). Inanother implementation, the graphing module 2204 is operative togenerate an ontology hierarchy that includes each of the structurecategory components from each of the document structure instances134-136 from the document under analysis 132 (2218).

In a further implementation, the graphing module 2204 generates a coreontology hierarchy that has common root classes, child classes, andrelationships. The graphing module 2204 may be configured to use thecore ontology hierarchy to generate a document specific ontologyhierarchy. For example, the graphing module 2204 may access the variousglossaries, such as the agent glossary 140 and the action glossary 142,to modify the core ontology hierarchy to include agent and actionclasses and instances specific to agent glossary 140 and the actionglossary 142. The graphing module 2204 may then access relationshipglossary 2102 to build types and establish relationships between theclasses of the modified core ontology hierarchy. Thereafter, thegraphing module 2204 may extract the structure category components fromthe document structure instances 134-136 to add instances or identifiersof the document structure instances to the modified core ontologyhierarchy. In other implementations, the graphing module 2204 may beconfigured to communicate with other modules, such as the analysismodule 126, to add instances or identifiers of the document structureinstances 134-136 to the modified core ontology hierarchy. The modifiedcore ontology hierarchy may then be assigned as the document specificontology hierarchy.

The graphing module 2204 may display one or more ontology hierarchies asoutput 2208 on the display 125. For example, the graphing module 2204may display the core ontology hierarchy, the document specific ontologyhierarchy, or any other hierarchy. The hierarchies may be displayed atany time including while being generated by the graphing module 2204,after being generated by the graphing module 2204, or being retrievedfrom another source, such as a memory device or other computer system.

FIG. 23 shows one example of a core ontology hierarchy 2302. The coreontology hierarchy 2302 may be preconfigured or generated by thegraphing module 2304. In one implementation, the core ontology hierarchy2302 is generated as the output 2208. In general, the core ontologyhierarchy 2302 illustrates the various relationships between classes ofrequirements. The core ontology hierarchy 2302 may be described usingthe OWL Web Ontology Language. However, the core ontology hierarchy 2302may also be described using other languages such as the ResourceDescription Framework (RDF) or the Knowledge Interchange Format (KIF).

The core ontology hierarchy 2302 comprises document structure instanceclasses related as root classes and child classes. For example, FIG. 23shows that the core ontology hierarchy 2302 starts with a rootrequirement class 2304 and that the root requirement class 2304 has fourchild classes: a RequirementType class 2306, a Requirement class 2308,an Agent class 2310, and an Action class 2312. The RequirementType class2306 also has two child classes: a Functional class 2314 and aNonfunctional class 2316. The Nonfunctional class 2316 is also a rootclass for two child classes: a Time class 2318 and a Security class2320. The Security class 2320 also has two child classes: anAuthentication class 2322 and an Encryption class 2324.

The Requirement class 2308 also has child classes. In oneimplementation, the Requirement class has a SimpleRequirement class 2326and a ConditionalRequirement class 2328. The SimpleRequirement class2326 has two child classes: a BusinessRule class 2330 and a StandardRequirement class 2332.

Like the Requirement class 2308, the Agent class 2310 has a User class2334 and a System class 2336 as child classes. The Action class 2312 mayor may not have child classes.

The subclasses for a parent class may be different depending on thecontext of the ontology hierarchy. For example, examples of otherNonfunctional classes include a SecureTokens class, a MessagingProtocolclass, or other classes. The other parent classes may also havealternative subclasses depending on the context of the ontologyhierarchy as well. Table 4 below lists some of the classes illustratedby the core ontology hierarchy 2302. In other implementations, the coreontology hierarchy 2302 includes alternative classes.

TABLE 4 Class Description Root The root of the ontology modelRequirementType A class that defines the type of requirement RequirementA class that defines a requirement Agent A class that defines agentsAction A class that defines actions Functional A class that definesfunctional requirements Nonfunctional A class the defines non-functionalrequirements Time A class that defines time Security A class thatdefines security Authentication A class that defines authenticationEncryption A class that defines encryption SimpleRequirement A classthat defines all requirements that are not conditionalConditionalRequirement A class that defines conditional requirementsBusinessRule A class that defines those requirements that are businessrules StandardRequirement A class that defines the standard requirementhaving the form: [agent] [modal] [word] [action] [rest] User A classthat defines a user System A class that defines a system

FIG. 23 also shows that the core ontology hierarchy 2302 defines classrelationships between the root classes and their associated childclasses. For example, FIG. 23 shows that the ontology model 2302includes a horizontal class definition relationship 2338 and a verticalclass definition relationship 2340. In general, horizontal classdefinition relationships define relationships between classes unrelatedto hierarchy, and vertical class definition relationships definehierarchical relationships between classes. In the example shown in FIG.23, the horizontal class definition relationship is a“hasRequirementType” relationship, and shows that the requirement class2308 has a requirement type of the RequirementType class 2306. Inaddition, FIG. 23 shows that the vertical class definition relationship2340 is a “has subclass” relationship that shows that the time rootrequirement class 2304 has four child classes. These relationships arenot exhaustive and other relationships are also possible. Examples ofclass definition relationships are shown below in Table 5.

TABLE 5 Relationship Description Affect Classifications that affect eachother. Contradict Classifications that contradict each other DependencyClassifications that depend on each other Implement Classification thatimplements a higher-level classification Similarity Classifications thatare similar to each other isA Classifications that are special cases ofother classifications has subclass Classifications where a subclass is aspecialization of the parent class. For example, a “parent” is asub-class of “human”, which means that “parent” is a special sub-groupof all “humans” that are parents hasRequirementType Classifications thatdefine the type of the requirement. In general, the class may be aFunctional class or a Nonfunctional class. | hasAgent Classificationswhere the class is the agent of the requirement. has instanceClassifications that instances of a class. In other words, the instanceclassification is the specific form of the general class that theinstance class is instantiating. hasAction Classifications where theclass is the action of the requirement. Affects Classifications thataffect each other. hasSecondaryAgent Secondary agent of a requirementhasEncryptionAlgorithm EncryptionAlgorithm used by the System (e.g. SSH,RSA)

The core ontology hierarchy 2302 may include, or be integrated with, oneor more domain specific ontologies. The domain-specific ontology mayinclude one or more domain-specific classes. For example, the coreontology hierarchy 2302 includes a domain-specific ontology 2342 thatcomprises a Time class 2318, a Security class 2320, an Authenticationclass 2322, and an Encryption class 2324. The domain-specific ontology2342 is associated with the Nonfunctional class 2316 of the coreontology hierarchy 2302. Other examples of domain-specific ontologiesinclude a mobile domain-specific ontology that has classes associatedwith mobile devices and an SAP system domain-specific ontologyassociated with SAP systems. Other domain-specific ontologies may beconfigured for other systems as well.

The domain-specific ontologies may be associated with other classes. Forexample, the core ontology hierarchy may have a domain-specific ontologyassociated with the Functional class 2314, a domain-specific ontologyassociated with the Requirement class 2308, a domain-specific ontologyassociated with the Agent class 2310, and a domain-specific ontologyassociated with the Action class 2312. In other words, a domain-specificontology may be associated with any class of the core ontology hierarchy2302.

As discussed above, the graphing module 2204 is operative to generate adocument specific ontology hierarchy using the document under analysis112 and the core ontology hierarchy 2302. FIG. 24 illustrates an exampleof a document specific ontology hierarchy 2402. In the example shown inFIG. 24, the document specific ontology hierarchy 2402 generates thedocument specific ontology hierarchy 2402 using the following twodocument structure instances: 1) The Web Server shall encrypt all of itsresponses using SSH; and 2) The Web Server shall have a response time of5 milliseconds or less.

The document specific ontology hierarchy 2402 includes hierarchyinstance identifiers 2404-2412 that identify and establish relationshipsbetween the structure category components of these two documentstructure instances. For example, the document specific ontologyhierarchy 2402 includes an agent hierarchy instance identifier 2404 thatidentifies the agent “Web Server,” a standard requirement hierarchyinstance identifier 2406 that identifies the response time of 5milliseconds, a standard requirement hierarchy instance identifier 2408that identifies the document requirement that the Web Server agent hasan encryption requirement of SSH, response time hierarchy instanceidentifier 2410 that identifies an instance of the response time parentclass, and an encryption hierarchy instance identifier 2412 thatidentifies an instance of the encryption parent class.

The document specific ontology hierarchy 2402 provides a powerful andinformative graphical overview of the relationships between the classesof the core requirement ontology 2302 and the document structureinstances 134-136. Given the large size of requirements documents, thegraphing module 2204 may provide information about the various systemsbeing referred to in the requirements document.

The requirements graphing system 2202 may interact with any othersystems, such as requirements analysis system 702, the requirementscommenting system 1002, the ontology analysis system 1900, or any othersystem, to provide information relating to the document structureinstances. For example, the document specific ontology hierarchy 2402may be queried to provide information about the document structureinstances using one or more query languages, such as a SPARQL. In oneimplementation, the following SPARQL query may be passed to the documentspecific ontology hierarchy 2402 to determine if there are anyrelationships between the document structure instances:

  select ?req1, ?req2 where { ?req1 hasRequirementType ?type1  ?req2hasRequirementType ?type2 .  Affects domain ?type1 .Affects range ?type2.  ?req2 hasAgent ?agent2 .?req1 hasAgent ?agent1  filter( ?agent1 =?agent2)}

Although the query to the document specific ontology hierarchy 2402 maybe in any language, the above SPARQL query returns all requirements forthe same agent that have requirement types that affect each other.

The requirements graphing system 2202, or any of the other systems, mayalso support additional queries. For example, the requirements graphingsystem 2202 may support a system-interaction query that identifiessystems that interact with each other. The system-interaction query maybe configured to return or display all requirements that have a systemagent as a primary agent and a system agent as the secondary agent.

Consider the following document structure instance: The Web Server shallsend the vendor data to the SAP System. In this document structureinstance, the Web Server is the primary agent and the SAP System is thesecondary agent. Both of these systems may be classified in the agentglossary 140 so that the requirements graphing system 2202 may determinethat these systems are interacting with each other. One example of asystem-interaction query is below:

  select ?req1 ?agent1 ?agent2 where {  ?req1 hasAgent ?agent2 .  ?req1hasSecondaryAgent ?agent2.  ?agent1 RDF:type System.  ?agent2 RDF:typeSystem  filter( ?agent1 != ?agent2) }

As explained with reference to FIGS. 36-47, the requirements graphingsystem 2202, or any other system described herein, may generate manydifferent types of maps for visualizing the relationships betweenentities.

The requirements graphing system 2202 may also support identifyingsystems that are missing non-functional requirements. In general, thereis often the case that a system may require a particular requirement tobe identified. The required requirement for the system may not beidentified in the requirements document. The requirements graphingsystem 2202 may accept a non-functional requirement identification querythat returns all systems which are missing a certain kind ofnon-functional requirement. Examples of non-functional requirementsinclude: security, performance, reliability, usability, integration anddata requirements. Each of these non-functional requirements may alsoinclude additional or sub-requirements that are non-functionalrequirements. Other non-functional requirements are also possible. FIGS.27, 36 and 48 below provide additional detail regarding non-functionalrequirements, non-functional attributes, and other features directed toa non-functional analysis.

One example of a non-functional requirement identification query isbelow:

  Function DetectMissingRequirements Start  For each agent inAgentGlossary   For each NonFunctionalRequirementType in  RequirementsOntology    ExecuteQuery (agent,nonFunctionalRequirementType)   End For  End For End FunctionExecuteQuery (agent, nonFunctionalRequirementType) Start  AskQueryString=   “Ask {“ +    “req hasAgent agent ;” +    “req hasRequirementTypenonFunctionalRequirementType”+   “}”  Result = Model.executeQuery(AskQueryString)  If result = false   Print “Agent” + agent + ”ismissing non-functional requirement   type” +nonFunctionalRequirementType End

The requirements graphing system 2202 may also support identifyinginteracting systems that do not have compatible security profiles. Inone implementation, the requirements graphing system 2202 supports asecurity profile identification query that determines whetherinteracting systems have similar protocol requirements. For example,consider the case where one system has a requirement for supporting acertain kind of encryption, while an interacting system does not haveany requirement for the same kind of encryption. In this example, therequirements graphing system 2202 identifies out that there is thepotential for a security-based incompatibility. One example of asecurity profile identification query is below:

  select ?agent1 ?agent2 where {  ?req hasAgent ?agent2 .  ?reqhasSecondaryAgent ?agent2.  ?agent1 RDF:type System.  ?agent2 RDF:typeSystem.  ?agent1 hasRequirementType ?EncryptionReq1.  ?agent2hasRequirementType ?EncryptionReq2.  ?EncryptionReq1 RDF:typeEncryption.  ?EncyptionReq2 RDF:type Encryption.  ?EncryptionReq1hasEncryptionTechnique? ?technique1.  ?EncryptionReq2hasEncryptionTechnique? ?technique2.  filter( ?agent1 != ?agent2 and?technique1 != ?technique2) }

In the query implemented above, the query identifies two interactingsystem (denoted by “?agent1” and “?agent2” in the SPARQL query) that donot use the same encryption technique. For example, if the first system,that is system 1, (i.e., “?agent1”) interacts with the second system,that is system 2, (i.e., “?agent2”), and the first system uses the RSAencryption technique and the second system uses the SSH protocol, thenthe above query returns “system 1” and “system 2”. The above query isone example for identifying security profiles, but other queries arealso possible for identifying other security attributes such asauthentication, access control, or other attributes.

Note that in addition to these queries, the requirements graphing system2202, or any other system, may be extended by adding other system-basedanalyses using additional queries.

In addition to the system-based analyses, the requirements graphingsystem 2202 may support analyses based on the role of an agent. Forexample, the requirements graphing system 2202 may be configured toaccept queries for a particular domain. In one implementation, therequirements graphing system 2202 is operative to capture information inthe domain ontologies about which agents are permitted to perform whichactions. This may be used to ensure that all the requirements meet thatconstraint. Another variation of a similar analysis is “Separation ofduty”, as outlined in Sarbanes Oxley. The requirements document, or anyother document under analysis, may be checked to see if the same agentmay perform different roles (e.g. the purchasing manager may be theapproving manager).

FIGS. 25-27 present alternative or additional types of glossaries.Although reference is made to system 102, any one of the systemsdescribed herein may use any one of the glossaries described herein foranalyzing an electronic document or document structure instance.

In addition to, or instead of, using the agent glossary 140 foranalyzing a document structure instance, the system 102 may use anentity glossary. In general, an entity glossary defines one or morepermissible entities that may be found in a document structure instance.

FIG. 25 shows an example of an entity glossary 2502. Similar to theagent glossary 140, the entity glossary 2502 also defines permissibleagents for the document structure instance. However, the entity glossary2502 may be broader and more flexible than the agent glossary 140because the entity glossary 2502 allows a user or system to define anentity type for the entity. For example, an entity may be defined ashaving the entity type “person,” “system,” “GenericEntity,”“GenericAgent,” or “GenericPerson.” Other types of entity types are alsopossible. Hence, the entity glossary provides a robust mechanism fordefining the entity type of an entity, which may be used by the system102 to further determine whether a document structure instance comportswith a particular syntax definition.

In the example shown in FIG. 25, the entity glossary 2502 defines anentity phrase field 2504, an explanation field 2506, an additional notesfield 2508, an entity type field 2510, and a parent field 2512. Thephrase field 2504 defines a phrase that denotes a permissibleconstituent entity for the structure instance syntax. For example, asshown in FIG. 25, one permissible phrase for an entity is “order portal”and another permissible phrase for an entity is “finance departmentuser.” Other permissible phrases may include “shipping module,” “orderdetails,” or other phrases.

The explanation field 2506 may provide diagnostic information relevantto the entity, how the entity performs a particular job or function, orother entity related information. The explanation field 2506 may be usedby the system 102 in providing meaningful information about the entitywhen a document structure instance is analyzed. The additional notesfield 2508 may be used to provide additional information about theentity for a user editing or revising the entity glossary 2502 and, inone implementation, may not be used by the system 102 in analyzing adocument structure instance. However, the system 102 may be configuredto read from the additional notes field 2508 to provide furtherdiagnostic or helpful information about an entity phrase appearing in adocument structure instance.

The entity type phrase field 2510 facilitates the selection of theentity type for an entity phrase. As discussed above, in oneimplementation, the entity type selection options may include “person,”“system,” “GenericEntity,” “GenericPerson,” “GenericAgent” or otheralternative entity types. As explained below with reference to FIGS.36-47, the selected entity type may affect the analysis of a documentstructure instance and how a component visualization relationship map, asystem visualization relationship map, or a sub-system visualizationrelationship map is generated. By providing for an entity type, thesystem 102 provides additional information regarding the interactionsamong entities described by the document structure instances.

Each of the entity type selection options may identify a different typeof entity for the associated entity phrase. For example, the “person”entity type may define that the associated entity phrase identifies aperson, such as a user of another entity described by a documentstructure instance. The “system” entity type may define that theassociated entity phrase identifies a system, such as module, component,machine, or other type of system. The “GenericAgent” entity type maydefine that the associated entity phrase is neither a system nor aperson. The “GenericAgent” entity type may alternatively define that theassociated entity phrase is either or both a system and a person. Hence,the “GenericAgent” entity type is a flexible entity type that may beassociated with either, both, or neither, a system or a person.

As explained previously with respect to other parent fields, such asthe, parent field 206 or parent field 406, the parent field 2512 may beused to build hierarchies of entities.

The entity glossary 2502 may also define entities that are passiveentities that are indirect nouns of a document structure instance. Forexample, a report, a data object, a listing, or other object that isacted upon may be a passive entity. Other types of passive entities arealso possible. The entity glossary 2502 may define that the“GenericEntity” entity type identifies a entity phrase as passive entitytype. For example, the “order details” entity phrase shown in FIG. 25 isassociated with the “GenericEntity” entity type and may be considered bythe system 102 as having a passive entity type.

In addition to the entity glossary 2502, the system 102 may employ analternative problematic phrase glossary other than, or in addition to,the problematic phrase glossary previously described with reference toFIG. 5. FIG. 26 shows an example of an alternative problematic phraseglossary 2602. In one implementation, the alternative problematic phraseglossary 2602 includes a problematic phrase field 2604, an explanationfield 2606, a suggestion field 2608, a template field 2610, and acategory field 2612.

The alternative problematic phrase glossary 2602 provides a robustmechanism for identifying problematic phrases and for suggestingalternative language to correct for the problematic phrase. Theproblematic phrase field 2604 identifies one or more problematicphrases. The one or more problematic phrases may be grouped together,such as a where a set of problematic phrases share a common ambiguity,failing, or problem. For example, FIG. 26 shows that the problematicphrases “improved,” “better,” “faster,” and “superior,” have beengrouped together. Grouping problematic phrases together may enhance theanalysis of a document structure instance by providing a commonsuggestion for correcting a problematic phrase. In addition, groupingproblematic phrases together reduces the time a user spends modifyingand revising the problematic phrase glossary 2602 because the user mayrely on using one suggestion for correcting a common set of problematicphrases. However, a problematic phrase may be stand-alone in theproblematic phrase glossary 2602, such as in the case of the problematicphrases “efficiently,” “none,” and “easy to use.” Alternativearrangements of problematic phrases are also possible.

The explanation field 2606 provides an explanation as to how aproblematic phrase may be corrected, why a problematic phrase may not beused, or other explanations. The explanation field 2606 may refer theuser to a suggestion provided by the suggestion field 2608 or anotherfield of the problematic phrase glossary 2602. The suggestion field 2608may provide a suggestion text that describes how the problematic phrasemay be replaced, such as an alternative word or phrase instead of theproblematic phrase. The system 102 may display the suggestion textappearing in the suggestion field 2608 when the system 102 identifies aproblematic phrase.

The template field 2610 provides a quick and efficient mechanism forreplacing identified problematic phrases. In addition, the words orphrases provided by the template field 2610 do not leave the userguessing as to which words or phrases would be more suitable than theidentified problematic phrase. In one implementation, the template field2610 provides a list of words or phrases that may replace an identifiedproblematic phrase. For example, the words or phrases appearing in thetemplate field 2610 may be displayed to a user, and a user may selectone or more of the words or phrases from the template field 2610 forreplacing a problematic phrase. Alternatively, or in addition, thesystem 102 may automatically replace a problematic phrase with one ormore words or phrases appearing in the template field 2610 when aproblematic phrase is identified.

The category field 2612 provides a mechanism for categorizing aproblematic phrase. The system 102 may refer to the category field 2612for providing metrics to the user as to the number and type ofproblematic phrases appearing in a document structure instance, in anelectronic document, or both. Alternative reporting mechanisms may alsorefer to the category field 2612.

In addition to the aforementioned glossaries, the system 102 may referto a non-functional attribute glossary for identifying whether one ormore document structure instances provide for an attribute assigned toan entity in the entity glossary 2502. FIG. 27 shows an example of anon-functional attribute glossary 2702. The non-functional attributeglossary 2702 provides centralized management over attributes thatshould be assigned to one or more entities defined in one or moreglossaries, such as entities defined in the entity glossary 2502.

In general, a non-functional attribute refers to a feature, condition,or characteristic of an entity. A non-functional attribute may definethe amount of simultaneous users an entity may support, the amount ofbandwidth available to an entity, the speed at which an entity isexpected to perform an operation, or other non-functional attribute. Anon-functional attribute may also be a non-functional requirement, whichwas previously discussed above. Other types of non-functional attributesare also possible.

The non-functional attribute glossary 2702 may include one or morefields for defining non-functional attributes. In one implementation,the fields of the non-functional attribute glossary 2702 include an areafield 2704, a requirement field 2706, a notes field 2708, a sample field2710, an indicator phrase field 2712, and an activatable element field2714. Alternative arrangements of attribute fields are also possible.

The area field 2704 stores an attribute area assigned to the attributerequirement of the requirement field 2706. The attribute area of thearea field 2704 may be user-defined, predefined within thenon-functional attribute glossary 2702, or both. In one implementation,an attribute area is first defined in the requirement field 2706 with anassociated attribute area identifier in the area field 2704. Forexample, FIG. 27 shows that the attribute area “Delivery Channels” firstappears in the requirement field 2706 of the first row of thenon-functional attribute glossary 2702, and that an associated attributearea identifier, “Non-Functional,” identifies that the phrase “DeliveryChannels” is an attribute area. Similarly, the attribute area“CapacityVolumetrics” is first defined as an attribute area in thefourth row of the non-functional attribute glossary 2702 by theattribute area identifier “Non-Functional” stored in the area field2704. In these examples, the phrase “Non-Functional” is used as anattribute area identifier to identify that the phrases “DeliveryChannels” and “CapacityVolumetrics” are attribute areas. Alternativeattribute area identifiers are also possible. As explained below withreference to FIG. 48, the attribute area stored in the area field 2704may be used in organizing a report showing whether one or more documentstructure instances satisfy attribute requirements assigned to anattribute area for an entity.

The requirement field 2706 stores an attribute requirement assignable toat least some of the permissible constituents found in one or moreglossaries, such as the entity glossary 2502. An attribute requirementgenerally describes an attribute that an entity should possess. Theattribute requirement may be categorized by one or more of the attributeareas stored in the area field 2704. For example, FIG. 27 shows that theattribute requirement “Connectivity Requirement” is categorized as a“Delivery Channels” attribute area. Another attribute requirementcategorized as a “Delivery Channels” attribute area includes the“Delivery Channels” attribute requirement. Additional or alternativeattribute requirements are also possible.

The notes field 2708 stores text describing the attribute requirement ofthe attribute field 2706. In one implementation, the attribute notestext may be displayed in a report describing whether the documentstructure instances of an electronic document satisfy an attributerequirement. Alternatively or in addition, the attribute notes text maybe displayed when a user is modifying or editing the non-functionalglossary 2702. The attribute notes text of the notes field 2708 providesadditional descriptive information regarding the associate attributerequirement.

The sample field 2710 stores a sample document structure instancesatisfying the attribute requirement of the requirement field 2706. Thesample field 2710 may store one or more document structure instances. Inone implementation, the sample field 2710 includes a valid documentrequirements statement. Other types of statements are also possible. Theattribute sample text of the sample field 2710 may be displayed duringthe editing or modifying of the non-functional glossary 2702.Alternatively, the attribute sample text of the sample field 2710 may bedisplayed to assist a user in revising or developing a documentstructure instance to satisfy the attribute requirement of therequirement field 2706. For example, in preparing a document structureinstance that satisfies the attribute requirement of the requirementfield 2706, the attribute sample text may be displayed as a guide toassist the user in preparing a better, valid, or more focused documentstructure instance. However, the attribute sample text may be displayedat any time.

The indicator phrase field 2712 stores one or more attribute phrasesthat identify an associated attribute requirement of the requirementfield 2706. For example, as shown in FIG. 27, the attribute indicatorphrases “delivery channels,” “delivery channel,” “browsers,” “browser,”and “Internet Explorer” are each attribute indicator phrases for theattribute requirement “Delivery Channels.” In these examples, theseattribute indicator phrases signify that a document structure instanceshould contain at least one of these phrases if the document structureinstance is to satisfy the “Delivery Channels” attribute requirement.Where an electronic document does not contain a document structureinstance having at least one attribute indicator phrase from theindicator phrase field 2712, the attribute requirement associated withthe attribute indicator phrase may be identified as not being satisfied.Similarly, where an electronic document does contain a documentstructure instance having at least one attribute indicator phrase fromthe indicator phrase field 2712, the attribute requirement associatedwith the attribute indicator phrase may be identified as beingsatisfied.

Satisfying the attribute requirement associated with an attributerequirement phrase may include matching one or more target phrases froma document structure instance with the attribute requirement phrase. Inone implementation, satisfying an attribute requirement phrase includesestablishing a one-to-one correspondence of the words appearing in thetarget phrase with the words appearing in the attribute indicatorphrase. In this implementation, a document structure instance satisfiesthe attribute requirement “Delivery Channels” when the phrase “deliverychannel” appears in the document structure instance. In an alternativeimplementation, satisfying an attribute requirement phrase includes apartial match of the words appearing in a target phrase with the wordsappearing in at least one attribute indicator phrase. In yet anotherimplementation, matching synonyms of the target phrase with one or moreattribute indicator phrases satisfies the one or more attributeindicator phrases. Other arrangements for satisfying one or moreattribute indicator phrases is also possible.

The activatable element field 2714 includes an activatable element forenabling an attribute requirement. The activatable element field 2714provides a flexible mechanism for controlling whether an electronicdocument should contain a document structure instance that satisfies anattribute requirement. The activatable element field 2714 may contain anactivatable element 2716 that controls whether an attribute requirementis enabled. In one implementation, activating the activatable element2716 to enable an attribute requirement signifies that an electronicdocument should contain at least one document structure instance thatsatisfies the corresponding attribute requirement. However, enabling theattribute requirement may also signify that a greater number of documentstructure instances should satisfy the corresponding attributerequirement. Determining whether an attribute requirement is to besatisfied may be based on whether the activatable element 2716 isactivated. Alternatively, determining whether an attribute requirementis to be satisfied may be based on whether the activatable element 2716is not activated.

In one implementation, the activatable element 2716 is a checkbox, andan attribute requirement is enabled when a checkmark appears in thecheckbox. Alternatively, the attribute requirement may be enabled when acheckmark does not appear in the checkbox. However, the activatableelement 2716 may be an alternative type of activatable element, such asa radio button, text field, or any other type of activatable element.

Turning next to FIGS. 28-35, examples of state machines 2802-3502 areshown that may be employed by the document analysis, commenting, andreporting system 102 (“system 102”) in evaluating one or more documentstructure instances. The state machines 2802-3502 shown in FIGS. 28-35provide a streamlined mechanism for evaluating document structureinstances and for determining whether a document structure instanceconforms to one or more document structure instance syntaxes. The statemachines 2802-3502 evaluate and analyze a document structure instance bythe phrases of the document structure instance, where a phrase isgenerally one or more words from the document structure instance. Aphrase may be a constituent from one or more glossaries, such as theagent glossary 140 or the entity glossary 2502, or the phrase may be oneor more words not appearing in any of the glossaries. Other types ofphrases are also possible.

As previously discussed with reference to the syntax definition 150, thesyntax definition 150 may define controlled document structure instancesyntaxes. Each of the state machines 2802-3502 shown in FIGS. 28-35 maybe used in evaluating one or more controlled document structure instancesyntaxes recognized by the system 102. The system 102 may select a statemachine for processing a document structure instance based on a documentstructure instance identifier associated with the document structureinstance that identifies the controlled document structure instancesyntax to which the document structure instance should conform. Table 6below describes examples of additional controlled document structureinstance syntaxes that may correspond to one or more of the statemachines shown in FIGS. 28-35.

TABLE 6 Document Structure Syntax Definition Syntax Type InstanceIdentifier Example Brief Explanation Solution SA [Agent] [“shall” | Thesolution syntax may “must” | “will”] express that someone, Action] somesystem, or both may be responsible for performing some action.Enablement ER [Agent] [“shall” | The enablement syntax “must” | “will”][“be may express a capability able to”] [Action]; or that the proposedsystem [Agent] [“shall” | may provide, but may not “must” | “will”]specify what/who provides [“allow” | “permit”] this capability. [Agent][“to”] [Action] There may be two types of enablement syntaxes: 1) anenablement syntax that does not mention a system; and 2) an enablementsyntax that mentions a high level capability provided by a system to auser. Action AC [Agent] [“shall” | The action constraint Constraint“will” | “may”] [“only” syntax may express a | “not”] [Action]constraint on how a system [“when | if”] or a component of the[Condition]; or system is expected to [“Only”] [Agent] behave. [“may” |“may be”] There may be two types of [Action]. action constraintsyntaxes: 1) an action constraint syntax that expresses a constraint onhow a system, or a component of the system, is allowed to behave; and,2) an action constraint syntax that expresses a business rule thatconstrains how an agent in a business takes an action. Attribute ATR[Entity | Agent] The attribute constraint Constraint [“must”] [“always”| syntax may express a “never” | “not”] [“be” | constraint on attributes“have”] [Value]. and/or attribute values. Definition DEF [Entity |Agent] [“is” | The definition syntax may “will be”] [“defined express adefinition of a as” | “classified as”] non-agent entity. [Entity].Policy P [Entity | Agent] [“is” | The policy syntax may “is not”][Action]. express a policy that should be adhered to by a system.

Alternatively, system 102 may select a state machine for processing adocument structure instance based on one or more modal phrasesidentified in the document structure instance. The one or more modalphrases may identify the controlled document structure instance syntaxof the document structure instance, and, based on the identifiedcontrolled document structure instance syntax, the system 102 may selectone or more state machines for processing the document structureinstance. Table 7 below lists examples of modal phrases that correspondto controlled document structure instance syntaxes. Other modal phrasescorresponding to other controlled document structure instance syntaxesare also possible.

TABLE 7 Syntax Type Modal Phrase Solution shall must will Enablementshall be able to must be able to will be able to shall permit shallallow must permit must allow will permit will allow Action Constraintshall only shall not will only will not may only may not may be mayAttribute Constraint must always have must always be must never be mustnever have must not be must not have must always include must neverinclude must not include must always contain must never contain must notcontain Definition will be classified as will be defined as isclassified as is defined as Policy is is not

Table 8 below lists examples of document structure instances thatconform to one or more of the controlled document structure instancesyntaxes described in Table 6 and Table 7. Although the documentstructure instances listed below are shown as conforming to onecontrolled document structure instance syntax, a document structureinstance may conform to more than one controlled document structureinstance syntax.

TABLE 8 Syntax Type Exemplary Document Structure Instance Solution SA1:The Order Processing System shall process orders every 2 hours. SA2: TheWeb Server must inform administrator of failed login attempts.Enablement ER1: The user must be able to display the PDF rendition ofassociated documents. ER2: The payroll system shall be able to deductloan amounts from paychecks. ER3: Inventory management system shallallow users to add items. ER4: Payroll system shall permit users tochange direct deposit profiles. ER5: Order Processing System must permitadministrator to view daily transactions. Action AC1: The accountmanagement system shall only close an account if the Constraint currentbalance is zero AC2: The authentication system shall not grant accesswhen identity- verification level is less than 8.9. AC3: Onlychild-friendly pets may be placed in old age homes. AC4: Only payrollemployees may access the payroll database. Attribute ATR1: Customerstanding must always be one of the following: 1) Gold Constraint 2)Silver 3) Bronze. ATR2: Chemical containers must not be stored insubzero temperature. ATR3: The customer must never have non US addressin records. Definition DEF1: Total sales value is defined as total itemvalue plus sales tax. DEF2: A graduate student with a grade-pointaverage above 3.5 is classified as an honors student. Policy P1: Salestax is computed on in-state shipments. P2: Sales tax is not computed oninterstate shipments.

Table 9 below lists the state machines shown in FIGS. 28-35 and thecontrolled document structure instance syntax corresponding to the statemachine. Although Table 9 lists one state machine for evaluating acontrolled document structure instance syntax, more than one statemachine may evaluate a single controlled document structure instancesyntax, a state machine may evaluate one or more controlled documentstructure syntax, or any other arrangement of state machines andcontrolled document structure syntaxes.

TABLE 9 State Machine and Reference Number Syntax Type solution statemachine 2802 Solution enablement state machine 2902 Enablement actionstate machine 3102 Action Constraint action state machine 3202 attributestate machine 3302 Attribute Constraint definition state machine 3402Definition policy state machine 3502 Policy

Each of the state machines 2802-3502 may be defined according to a statemachine equation. The state machine equation may be represented as asix-tuple as (Σ, S, s₀, δ, F, E) where,

“Σ” is an alphabet that includes at least one modal constituent and oneor more constituents from the entity glossary 2502, the action glossary142, or any other glossary;

-   -   “S” a set of states defining the state machine representing the        controlled document structure instance;    -   “s₀” is a start state;    -   “δ” is a transition function and may be evaluated according to        whether a document structure instance includes a particular        constituent;    -   “F” is a set of final states indicating that a document        structure instance conforms to a particular controlled document        structure instance syntax; and,    -   “E” is the set of error states indicating that a document        structure instance does not conform to the controlled document        structure instance syntax represented by the state machine.

State machines 2802-3502 facilitate and expedite the processing of adocument structure instance. In addition, the state machines 2802-3502expeditiously identify errors that may be present in a documentstructure instance. For example, state machine 2802 facilitates theidentification of at least five possible errors that may occur in adocument structure instance conforming to the solution type controlleddocument structure instance syntax. The five possible errors includefinding a non-agent entity (represented by Non-Agent Entity State 2810),recognizing a missing agent (represented by Missing Agent State 2812),recognizing the presence of an unknown agent (represented by UnknownAgent State 2816), recognizing the presence of an unknown action(represented by Unknown Action State 2818), and identifying a missingaction (represented by Missing Action State 2822). The other statemachines 2902-3502 may identify similar or alternative errors.

Table 10 lists possible states found in state machines 2802-3502 and abrief description of each of the states. Alternative states are alsopossible.

TABLE 10 State and Reference Number Type of State Brief DescriptionStart 2804 Start A starting state for a state machine. “To” State 3014Transition A state indicating that an expected “to” phrase was found inthe document structure instance. Agent State 2808 Transition A stateindicating that an agent constituent was found in the document structureinstance. Branch Agent State 3008 Transition A state indicating that anexpected constituent agent was found in the document structure instance.Branch Model State 3010 Transition A state indicating that an expectedconstituent modal was found in the document structure instance.Conditional State 3108 Transition A state indicating that an expectedintroducing conditional phrase was found in the document structureinstance. Entity State 3304 Transition A state indicating that anexpected constituent agent or entity phrase was found in the documentstructure instance. Modal State 2814 Transition A state indicating thatan expected modal constituent was found in the document structureinstance. Non-Entity State 2806 Transition A state indicating that anon- entity phrase was found in the document structure instance. OnlyState 3204 Transition A state indicating that an expected phrase withthe word “only” was found in the document structure instance. Missing“To” State 3012 Error A state indicating that an expected “to” phrasewas not found in the document structure instance. Missing Action State2822 Error A state indicating that the document structure instance endedand no unevaluated phrases remain in the document structure instance.Missing Agent State 2812 Error A state indicating that a modalconstituent was found, but an expected agent constituent was not found.Missing Conditional State 3104 Error A state indicating that an expectedconditional was not found in the document structure instance. Non-AgentEntity State 2810 Error A state indicating than an entity constituentwas found in the document structure instance, but that the entityconstituent is not an agent constituent. Syntax Error State 3106 Error Astate indicating that a syntax error occurred in the document structureinstance. Unknown Action State 2818 Error A state indicating that aphrase was found in the document structure instance, but the phrase isnot an expected action constituent. Unknown Agent State 2816 Error Astate indicating that an expected agent constituent was not found in thedocument structure instance. Unknown Entity State 3404 Error A stateindicating that an expected entity phrase or constituent agent was notfound in the document structure instance. Action State 2820 Final Astate indicating that an expected constituent was found in the documentstructure instance. Final State 3110 Final A state indicating that thecontrolled document structure instance syntax for a document structureinstance was evaluated successfully.

As the controlled document structure instance syntax for a documentstructure instance is being evaluated, the evaluation of the controlleddocument structure instance syntax may result in an error, which isshown above in Table 10 as one or more error states. When an error stateis encountered, an error message may be displayed that describes theerror and may provide a suggestion as to how the error may be corrected.An error state may be associated with one or more error messages. Table11 below lists exemplary error messages associated with one or moreerror states and the type of error message displayed. Categorizing errormessages according to an error type may be used in evaluating the numberof errors occurring in a document structure instance, the number ofdifferent types of errors occurring in a document structure instance, orother error-related information. Moreover, the number of errors and thenumber of different types of errors may be reported for an entireelectronic document that is comprised of document structure instances.Other combinations of evaluating errors in an electronic document ordocument structure instance are also possible.

TABLE 11 Error State Error Message Missing Agent This requirement lacksan agent before State <variable at which error occurs>. It can beconfusing to leave the agent implicit. Unknown Action This requirementcontains ‘<variable at which State error occurs>’ where an action isexpected, but ‘<variable at which fault occurs>’ is not in the actionglossary. Unknown Agent This requirement contains ‘<variable at whichState error occurs>’ where an agent is expected, but ‘<variable at whichfault occurs>’ is not in the entity glossary. Non Agent This requirementcontains ‘<variable at which Entity State error occurs>’ where an agentis expected. ‘<variable at which error occurs>’ is in the entityglossary but is not designated as an agent. Missing Action Thisrequirement lacks an action before State ‘<variable at which erroroccurs>’. It can be confusing to leave the action implicit.

Turning next to FIG. 36, an example of a requirements visualizationsystem 3602 is shown. Where similar objects appear in the requirementsvisualization system 3602 that have been previously described for one ormore systems, a description of those objects has been omitted forbrevity.

In the example shown in FIG. 36, the requirements visualization system3602 includes a syntax-based document visualization module 3604 and asyntax-based document attribute analysis module 3606. The requirementsvisualization system 3602 may also include the entity glossary 2502, theproblematic phrase glossary 2602, and the non-functional attributeglossary 2702 as part of a document parameter set 3608. As withpreviously described systems, the document parameter set 3608 may alsoinclude the mode glossary 144, document structure instance identifiers148, the action glossary 142, and one or more document structureinstance syntax definitions 150. The syntax-based document visualizationmodule 3604 and the syntax-based document attribute analysis module 3606may be in communication with a document under analysis 132 and thedocument specific parameter set 3608. The requirements visualizationsystem 3602 may also be in communication with the document analysisdatabase 124 to retrieve one or more document specific parameter sets702-706.

In addition to the document parameter set 3608 and the document underanalysis 132, the syntax-based document visualization module 3604 andthe syntax-based document attribute analysis module 3606 may be incommunication with other components. For example the syntax-baseddocument visualization module 3604 and the syntax-based documentattribute analysis module 3606 may be in communication with theprocessor 116, the network interface 120, and various input/outputdevices 122. As shown in FIG. 36, the syntax-based documentvisualization module 3604 and the syntax-based attribute analysis module3606 are in communication with the display 125, and the modules3604-3606 may display various graphical representations from analyzingthe document under analysis 132, such as a component visualizationrelationship map, a system visualization relationship map, a sub-systemvisualization relationship map, an attribute requirement report, or anyother type of graphical representations of analyzing the document underanalysis 132.

Although the syntax-based document visualization module 3604 and thesyntax-based document attribute analysis module 3606 are shown asintegrated as part of the requirements visualization system 3602, thesyntax-based document visualization module 3604 and the syntax-baseddocument attribute analysis module 3606 may be integrated as part of anyother system. For example, the syntax-based document visualizationmodule 3604 and the syntax-based document attribute analysis module 3606may be incorporated into the document analysis, commenting, andreporting system 102, the requirements analysis system 702, therequirements commenting system 1002, the report generator system 1302,the ontology analysis system 1900, or the requirements graphing system2202. In other implementations, the syntax-based document visualizationmodule 3604 and the syntax-based document attribute analysis module 3606are accessed through remote procedure calls, web services, or otherinterfaces to render a graphical representation on the display 125.

In one implementation, the syntax-based document visualization module3604 is operative to generate a component visualization relationshipmap. FIG. 37 shows one example of a component visualization relationshipmap 3702. The component visualization relationship map 3702 mayrepresent the interaction of a component with another component for oneor more document structure instances. In general, a component may be anagent, an entity, a system, a person, or any constituent from the agentglossary 140 or the entity glossary 2502.

The component visualization relationship map 3702 focuses on theinteractions between a first constituent in a document structureinstance and other constituents identified as interacting with the firstconstituent. The component visualization relationship map 3702 providesa unique analysis of a set of document structure instances byidentifying the interactions between the first constituent and otherconstituents of the set of document structure instances and displaying avisual representation of the interactions between the first constituentand the other constituents. The component visualization relationship map3702 may also provide a visual representation of constituents that arenon-interacting to help identify where a set of document structureinstances may be deficient with respect to the non-interactingconstituents. For example, the component visualization relationship map3702 may help pinpoint and identify non-interacting constituents thatmay, in fact, be interacting constituents.

In generating the component visualization relationship map 3702, thesyntax-based document visualization module 3604 may perform arecognition process to recognize that one or more document structureinstances conforms to an interaction syntax. The interaction syntax maybe a controlled document structure instance syntax and may, or may not,be associated with a document structure instance identifier. Thesyntax-based document visualization module 3604 may parse and/or analyzea document structure instance to identify interacting constituents andnon-interacting constituents according to the interaction syntax.

In one implementation, the interaction syntax is defined as “anyrequirement that has agent that is a system or a person and a secondarythat is a system or a person.” Alternatively, the interaction syntax maybe a conditional statement, which may be defined as:

InteractionRequirement(R)=Requirement(R) & hasEntity(R,A) & ((System(A)or Person(A)) & SecondaryAgent(B) & ((System(B) or Person(B)), where:

R is a document structure instance;

A is a first phrase from the requirement statement;

B is a second phrase from the requirement statement;

Requirement(X) is a function that determines whether a documentstructure instance X is a requirement statement;

hasEntity(X, Y) is a function that determines whether the phrase Y is anentity within the document structure instance X;

System(Y) is a function that determines whether the phrase Y is anentity having the entity type of “system”;

Person(Y) is a function that determines whether the phrase Y is anentity having the entity type of “person”; and,

SecondaryAgent(Y) is a function that determines whether the phrase Y isa secondary agent of the requirement statement X. A phrase Y may be asecondary agent where it is identified as being a direct object foranother subject phrase.

After identifying document structure instances from a set of documentstructure instances that conform to the interaction syntax, thesyntax-based document visualization module 3604 may then identifywhether one or more phrases from the identified set of documentstructure instances are interacting constituents or non-interactingconstituents. In one implementation, the syntax-based documentvisualization module 3604 employs an interacting agent conditionalstatement to identify those constituents as interacting ornon-interacting. The interacting agent conditional statement may bewritten as a conditional statement defined as “any system or user thatis the agent or secondary agent of an interaction requirement.” In aconditional language format, the interacting agent conditional statementmay be defined as:

InteractingAgent(A)=(System(A) or Person(A)) & InteractionRequirement(R)& (Agent(A) or SecondaryAgent(A)), where:

R is a document structure instance;

A is a first phrase from the requirement statement;

B is a second phrase from the requirement statement;

InteractionRequirement(X) is a function that determines whether adocument structure instance X is an interaction requirement;

Agent(Y) is a function that determines whether the phrase Y is an agent;

System(Y) is a function that determines whether the phrase Y is anentity having the entity type of “system”;

Person(Y) is a function that determines whether the phrase Y is anentity having the entity type of “person”; and,

SecondaryAgent(Y) is a function that determines whether the phrase Y isa secondary agent of the requirement statement X. A phrase Y may be asecondary agent where it is identified as being a direct object foranother subject phrase.

In addition, the syntax-based document visualization module 3604 mayidentify whether a constituent is an interacting agent based on whetherthe constituent has a child, or sub-component, that is an interactingagent. Examples of child agents include a billing module defined as asub-system of an order processing system or a shipping module defined asa sub-system of the order processing system. Other types of child agentsare also possible. For determining whether a constituent is aninteracting agent based on one or more children, the syntax-baseddocument visualization module 3604 may employ an interacting child agentconditional statement defined as “any system or user, whose child is aninteracting agent.” The interacting child agent conditional statementmay also be written in a conditional language format defined as:

InteractingAgent(A)=(System(A) or Person(A)) & child(A,B) &InteractingAgent(B), where:

A is a first phrase from a document structure instance;

B is a second phrase from the document structure instance;

System(Y) is a function that determines whether the phrase Y is anentity having the entity type of “system”;

Person(Y) is a function that determines whether the phrase Y is anentity having the entity type of “person”; and,

Child(X,Y) is a function that determines whether the phrase B is a child(or sub-component) of the phrase A.

In evaluating each of the functions identified above, the syntax-basedvisualization module 3604 may refer to one or more glossaries, such asthe entity glossary 2502, the relationship glossary 2102, the agentglossary 140, or any other glossary previously discussed.

FIG. 37 shows that the component visualization relationship map 3702includes several visualization relationship objects and severalvisualization interaction objects. In general, a visualizationrelationship object refers to a visual representation of a constituentfrom a document structure instance or a set of document structureinstances. The visualization relationship object may represent aconstituent in a document structure instance of an electronic documentmatching a permissible constituent found one or more of the glossaries,such as the entity glossary 2502, the agent glossary 140, or any otherglossary. In addition, a visualization interaction object generallyrefers to a visual representation of an interaction, or non-interaction,between one or more visualization relationship objects. Moreover,visualization relationship objects may be interacting visualizationrelationship objects or non-interacting visualization relationshipobjects, and a visualization interaction object may identify orillustrate an interaction established between one or more visualizationrelationship objects defined by one or more document structureinstances.

The exemplary component visualization relationship map 3702 represents acomponent visualization relationship map for a project resourcemanagement system 3706. As shown in the FIG. 37, the project resourcemanagement system 3706 has several sub-systems, including an assignresource module 3704 and a maintain project module 3712. Because theassign resource module 3704 and the maintain project module 3712 are“children” of the project resource management system 3706, the componentvisualization relationship map 3702 may also illustrate interactions ofthe assign resource module 3704 and the maintain project module 3712.However, the visualization module 3604 may be instructed or configuredto generate a component visualization relationship maps for otherconstituents of an electronic document or a document structure instance.For example, the visualization module 3604 may be instructed orconfigured to generate a component visualization relationship map forthe assign resource module 3704, the maintain project module 3712, theproject lead 3708, the team resource manager 3710, or any otherconstituents.

The visualization relationship object representing a constituent may berepresented as a graphical iconic image. The graphical iconic image ofthe component visualization relationship map 3702 representing theassign resource module 3704 is one example of a visualizationrelationship object. Similarly, the graphical iconic image of thecomponent visualization relationship map 3702 representing the projectresource management system 3706 is another example of a visualizationrelationship object. Likewise, the graphical iconic image of thecomponent visualization relationship map 3702 representing the projectlead 3708 is a further example of a visualization relationship object.As discussed below with reference to FIG. 38, other representations ofthe visualization relationship objects are also possible.

As discussed above, the component visualization relationship map 3702includes visualization interaction objects that represent interactionsamong one or more of the visualization relationship objects. Thecomponent visualization relationship map 3702 shows that thevisualization interaction object represented by the graphical iconicimage 3714 illustrates an interaction, established by one or moredocument structure instances, between the assign resource module 3704and the maintain project module 3712. The component visualizationrelationship map 3702 also shows other visualization interactionobjects, such as a visualization interaction object, represented by thegraphical iconic image 3716, between the assign resource module 3704 andthe project lead 3708. Depending on the selected constituent for whichthe component visualization relationship map 3702 was generated, and theinteractions established by one or more document structure instancesthat include the selected constituent, a component visualizationrelationship map may include none, one, or more than one visualizationinteraction objects.

In addition, one or more visualization interaction objects may includean interaction document structure instance identifier that identifiesthe document structure instance that establishes the interaction, ornon-interaction, between a constituent and other constituents. Forexample, the graphical iconic image 3716 includes the interactiondocument structure instance identifier “DT-01.8,” which identifies thatthe document structure instance having the document structure instanceidentifier “DT-01.8” establishes an interaction between the assignresource module 3704 and the project lead 3708. Other examples ofinteraction document structure instance identifiers include theinteraction document structure instance identifier “DT-01.2,” theinteraction document structure instance identifier “DT-01.3,” and theinteraction document structure instance identifier “DT-05.7.” Byincluding interaction document structure instance identifiers in thecomponent visualization relationship map 3702, the visualization module3604 assists in identifying problematic or proper document structureinstances. For example, by reviewing the visualization interactionobjects labeled with interaction document structure instanceidentifiers, a user or other system can quickly refer to the identifieddocument structure instance and determine whether the interaction, ornon-interaction, established by the document structure instance is aproper, or desired, interaction or non-interaction.

In evaluating a set of document structure instances, the componentvisualization relationship map 3702 may include a color schema havingone or more assignable display states that displays interactions betweenconstituents of a document structure instance or an electronic document.The color schema may include a first display state that displays that aninteraction is established between a first constituent and a secondconstituent, a second display state that displays that a non-interactionis established between the first constituent and the second constituent,or any other types of display states.

In FIG. 37, the component visualization relationship map 3702 includes afirst display state 3718 that displays that a constituent has at leastone interaction, and a second display state 3720 that displays that aconstituent does not have an interaction. The display states may bebased on one or more assignable characteristics of a visualizationrelationship object, such as color, shading, orientation, position, orany other characteristic. In one implementation, the color schemaincludes a first color assignable to the first display state 3718, and asecond color different than the first color assignable to the seconddisplay state 3720. However, other implementations are also possible.Based on the color schema, the visualization module 3604 assignsvisualization relationship objects display states depending on whether adocument structure instance has established an interaction for theconstituent.

Although the visualization module 3604 may be instructed or configuredto generate the component visualization relationship map 3702, thevisualization module 3604 may generate alternative componentvisualization relationship maps. FIG. 38 shows an alternative example ofa component visualization relationship map 3802. The componentvisualization relationship map 3802 represents an entity-specificcomponent visualization relationship map and more particularly, a systemcomponent visualization relationship map, that illustrates theinteractions between the project resource management system 3706 andconstituents having the entity type “System.” However, other types ofcomponent visualization relationship maps may include constituentshaving an entity type other than “System,” such as “Person,”“GenericEntity” or other entity type. A component visualizationrelationship map that includes interactions between a selectedconstituent and other constituents of mixed entity types is alsopossible.

The system component visualization relationship map 3802 includes anentity type identifier cell 3804 that identifies the interacting entitytypes, a set of rows 3808-3826 for the constituents identified in theelectronic document and a set of columns 3828-3830 for the constituentsidentified in the electronic document having the entity type “System.”In one implementation, each of the rows 3806-3826 and each of thecolumns 3828-3830 match at least one permissible constituent of aglossary, such as the entity glossary 2502 or the agent glossary 140. Inan alternative implementation, a row and/or a column may represent animpermissible constituent or impermissible phrase. Other arrangements ofpermissible and impermissible constituents and phrases are alsopossible.

In one implementation, each row 3806-3826 and the each column 3828-3830represents a visualization relationship object for the system componentvisualization relationship map 3802. In addition, the system componentvisualization relationship map 3802 also includes visualizationinteraction objects. With respect to the system component visualizationrelationship map 3802, a visualization interaction object may be anintersection cell between a row and a column where a document structureinstance establishes an interaction between the constituent representedby the row and the constituent represented by the column. As oneexample, the intersection cell 3830 between the row 3820 and the column3828 represents a visualization interaction object. The intersectioncell 3832 illustrates that a document structure instance identified bythe syntax-based document visualization module 3604 establishes aninteraction between the assign resource module 3704 and the maintainproject module 3712. Alternatively, a visualization interaction objectmay be an intersection cell between a row and a column where aninteraction is not established between the constituent represented bythe row and the constituent represented by the column. As one example,the intersection cell 3834 between the row 3806 and the column 3828represents a visualization interaction object where a document structureinstance has not established an interaction between the assign resourcemodule 3704 and the backup master employee repository 3722.

FIG. 39 shows an alternative example of a component visualizationrelationship map 3902. The component visualization relationship map 3802represents an entity-specific component visualization relationship mapand more particularly, a person component visualization relationshipmap, that illustrates the interactions between the project resourcemanagement system 3706 and constituents having the entity type “Person.”However, other types of component visualization relationship maps mayinclude constituents having an entity type other than “Person,” such as“System,” “GenericAgent,” “GenericEntity” or other entity type. Acomponent visualization relationship map that includes interactionsbetween a selected constituent and other constituents of mixed entitytypes is also possible.

The person component visualization relationship map 3902 includes anentity type identifier cell 3904 that identifies the interacting entitytypes, a set of rows 3906-3916 for the constituents identified in theelectronic document and a set of columns 3918-3920 for the constituentsidentified in the electronic document having the entity type “Person.”In one implementation, each of the rows 3906-3916 and each of thecolumns 3918-3920 match at least one permissible constituent of aglossary, such as the entity glossary 2502 or the agent glossary 140. Inan alternative implementation, a row and/or a column may represent animpermissible constituent or impermissible phrase. Other arrangements ofpermissible and impermissible constituents and phrases are alsopossible.

In one implementation, each row 3906-3916 and each column 3918-3920represents a visualization relationship objects for the person componentvisualization relationship map 3902. In addition, the person componentvisualization relationship map 3902 also includes visualizationinteraction objects. With respect to the person component visualizationrelationship map 3902, a visualization interaction object may be anintersection cell between a row and a column where a document structureinstance establishes an interaction between the constituent representedby the row and the constituent represented by the column. As oneexample, the intersection cell 3922 between the row 3908 and the column3918 represents a visualization interaction object. The intersectioncell 3922 illustrates that at least one document structure instanceidentified by the visualization interaction object establishes aninteraction between the project resource management system 3706 and theresource manager 3724. Alternatively, a visualization interaction objectmay be an intersection cell between a row and a column where aninteraction is not established between the constituent represented bythe row and the constituent represented by the column. As one example,the intersection cell 3924 between the row 3912 and the column 3918represents a visualization interaction object where a document structureinstance has not established an interaction between the assign resourcemodule 3704 and the resource manager 3724.

In another implementation, the syntax-based document visualizationmodule 3604 is operative to generate a system visualization relationshipmap. FIG. 40 shows one example of a system visualization relationshipmap 4002. The system visualization relationship map 4002 may representthe interactions among constituents identified in a document structureinstance, a set of document structure instances, or an electronicdocument. The system visualization relationship map 4002 provides acomprehensive visualization of the interactions and non-interactionsthat occur among constituents. The system visualization relationship map4002 assists in the identification of proper and improper interactions,and helps identify whether a constituent has any interaction. The systemvisualization relationship map 4002 may help pinpoint and identifynon-interacting constituents that should, in fact, be interactingconstituents.

In generating the system visualization relationship map 4002, thesyntax-based document visualization module 3604 may perform arecognition process to recognize that one or more document structureinstances conforms to an interaction syntax. As discussed theinteraction syntax may be a controlled document structure instancesyntax and may, or may not, be associated with a document structureinstance identifier. The syntax-based document visualization module 3604may parse and/or analyze a document structure instance to identifyinteracting constituents and non-interacting constituents according tothe interaction syntax. In recognizing whether a document structureinstance conforms to an interaction syntax for generating the systemvisualization relationship map 4002, the syntax-based documentvisualization module 3604 may employ any one of the syntaxes previouslydiscussed.

Similar to the component visualization relationship map 3702, the systemvisualization relationship map 4002 includes several systemvisualization relationship objects and several system visualizationinteraction objects. In general, a system visualization relationshipobject refers to a visual representation of a constituent from adocument structure instance or a set of document structure instances.The system visualization relationship object may represent a constituentin a document structure instance of an electronic document matching apermissible constituent found one or more of the glossaries, such as theentity glossary 2502, the agent glossary 140, or any other glossary. Inaddition, a system visualization interaction object generally refers toa visual representation of an interaction, or non-interaction, betweenone or more visualization relationship objects. Moreover, systemvisualization relationship objects may be interacting systemvisualization relationship objects or non-interacting systemvisualization relationship objects, and a system visualizationinteraction object may identify or illustrate an interaction establishedbetween one or more system visualization relationship objects defined byone or more document structure instances.

The exemplary system visualization relationship map 4002 represents asystem visualization relationship map for several constituents includingthe assign resource module 3704, project resource management system3706, the project lead 3708, the team resource manager 3710, themaintain project module 3712, the backup master employee repository3722, and the resource manager 3724.

The system visualization relationship object representing a constituentmay be represented as a graphical iconic image. The graphical iconicimage of the system visualization relationship map 4002 representing theassign resource module 3704 is one example of a system visualizationrelationship object. Similarly, the graphical iconic image of the systemvisualization relationship map 4002 representing the project resourcemanagement system 3706 is another example of a system visualizationrelationship object. Likewise, the graphical iconic image of the systemvisualization relationship map 4002 representing the project lead 3708is a further example of a system visualization relationship object. Asdiscussed below with reference to FIG. 41, other representations of thesystem visualization relationship objects are also possible.

As discussed above, the system visualization relationship map 4002includes system visualization interaction objects that representinteractions among one or more of the system visualization relationshipobjects. The system visualization relationship map 4002 shows that thesystem visualization interaction object 4004 illustrates an interaction,established by one or more document structure instances, between thebackup master employee repository 3722 and the project lead 3708. Thesystem visualization relationship map 4002 also shows othervisualization interaction objects, such as a visualization interactionobject, represented by the graphical iconic image 4006, between theassign resource module 3704 and the project lead 3708. Depending on thedocument structure instance or the document structure instances of anelectronic document, a system visualization relationship map may includenone, one, or more than one system visualization interaction objects.

In evaluating a set of document structure instances, the systemvisualization relationship map 4002 may include a color schema havingone or more assignable display states that displays interactions betweenconstituents of a document structure instance or an electronic document.The color schema may include a first display state that displays that aninteraction is established between a first constituent and a secondconstituent, a second display state that displays that a non-interactionis established between the first constituent and the second constituent,or any other types of display states.

In FIG. 40, the system visualization relationship map 4002 includes afirst display state 4008 that displays that a constituent has at leastone interaction, and a second display state 4010 that displays that aconstituent does not have an interaction. The display states may bebased on one or more assignable characteristics of a visualizationrelationship object, such as color, shading, orientation, position, orany other characteristic. In one implementation, the color schemaincludes a first color assignable to the first display state 4008, and asecond color different than the first color assignable to the seconddisplay state 4010. However, other implementations are also possible.Based on the color schema, the visualization module 3604 assigns systemvisualization relationship objects display states depending on whether adocument structure instance has established an interaction for theconstituent.

Although the visualization module 3604 may be instructed or configuredto generate the system visualization relationship map 4002, thevisualization module 3604 may generate alternative system visualizationrelationship maps. FIG. 41 shows an alternative example of a systemvisualization relationship map 4102. The system visualizationrelationship map 4102 represents an entity-specific system visualizationrelationship map and more particularly, a system visualizationrelationship map that illustrates the interactions between a first setof constituents having an entity type of “System” and a second set ofconstituents having an entity type “System.” However, other types ofsystem visualization relationship maps may include constituents havingan entity type other than “System,” such as “Person,” “GenericEntity” orother entity type. A system visualization relationship map that includesinteractions between constituents of mixed entity types is alsopossible.

The system visualization relationship map 4102 includes an entity typeidentifier cell 4104 that identifies the interacting entity types, a setof rows 4106-4126 for the constituents identified in the electronicdocument having the entity type “System” and a set of columns 4128-4142for the constituents identified in the electronic document having theentity type “System.” In one implementation, each of the rows 4106-4126and each of the columns 4128-4142 match at least one permissibleconstituent of a glossary, such as the entity glossary 2502 or the agentglossary 140. In an alternative implementation, a row and/or a columnmay represent an impermissible constituent or impermissible phrase.Other arrangements of permissible and impermissible constituents andphrases are also possible.

In one implementation, each row 4106-4126 and each column 3828-3830represents a system visualization relationship object for the systemvisualization relationship map 4102. In addition, the systemvisualization relationship map 4102 also includes system visualizationinteraction objects. With respect to the system visualizationrelationship map 4102, a system visualization interaction object may bean intersection cell between a row and a column where a documentstructure instance establishes an interaction between the constituentrepresented by the row and the constituent represented by the column. Asone example, the intersection cell 4144 between the row 4112 and thecolumn 4136 represents a system visualization interaction object. Theintersection cell 4144 illustrates that a document structure instanceidentified by the visualization interaction object establishes aninteraction between the assign resource module 3704 and the maintainproject module 3712. Alternatively, a system visualization interactionobject may be an intersection cell between a row and a column where aninteraction is not established between the constituent represented bythe row and the constituent represented by the column. As one example,the intersection cell 4146 between the row 4114 and the column 4142represents a visualization interaction object where a document structureinstance has not established an interaction between the maintain projectmodule 3712 and the backup master employee repository 3722.

FIG. 42 shows an alternative example of a system visualizationrelationship map 4202. The system visualization relationship map 4202represents an entity-specific system visualization relationship map andmore particularly, a person visualization relationship map thatillustrates the interactions between a first set of constituents havingan entity type of “System” and constituents having the entity type“Person.” However, other types of system visualization relationship mapsmay include constituents having an entity type other than “Person” or“System,” such as “GenericAgent,” “GenericEntity,” or other entity type.A system visualization relationship map that includes interactionsestablished between constituents of mixed entity types is also possible.

The system visualization relationship map 4202 includes an entity typeidentifier cell 4204 that identifies the interacting entity types, a setof rows 4206-4226 for the constituents identified in the electronicdocument having the entity type “System,” and a set of columns 4228-4234for the constituents identified in the electronic document having theentity type “Person.” In one implementation, each of the rows 4206-4226and each of the columns 4228-4234 match at least one permissibleconstituent of a glossary, such as the entity glossary 2502 or the agentglossary 140. In an alternative implementation, a row and/or a columnmay represent an impermissible constituent or impermissible phrase.Other arrangements of permissible and impermissible constituents andphrases are also possible.

In one implementation, each row 4206-4226 and each column 4228-4234represents a system visualization relationship objects for the systemvisualization relationship map 4202. In addition, the systemvisualization relationship map 4202 may include system visualizationinteraction objects. With respect to the system visualizationrelationship map 4202, a system visualization interaction object may bean intersection cell between a row and a column where a documentstructure instance establishes an interaction between the constituentrepresented by the row and the constituent represented by the column. Asone example, the intersection cell 4236 between the row 4206 and thecolumn 4228 represents a system visualization interaction object. Theintersection cell 4236 illustrates that at least one document structureinstance identified by the syntax-based document visualization module3604 establishes an interaction between the project resource managementsystem 3706 and the resource manager 3724. Alternatively, a systemvisualization interaction object may be an intersection cell between arow and a column where an interaction is not established between theconstituent represented by the row and the constituent represented bythe column. As one example, the intersection cell 4238 between the row4212 and the column 4228 represents a system visualization interactionobject where a document structure instance has not established aninteraction between the assign resource module 3704 and the resourcemanager 3724.

In another implementation, the syntax-based document visualizationmodule 3604 is operative to generate a sub-system visualizationrelationship map. FIG. 43 shows one example of a sub-systemvisualization relationship map 4302. The sub-system visualizationrelationship map 4302 may represent the interactions among constituentsidentified in a document structure instance or a subset of documentstructure instances from a set of document structure instances. In oneimplementation, the sub-system visualization relationship map 4302provides a visualization of the interactions between a subset ofdocument structure instances that set out requirements for achieving anobjective, such as a particular goal, use, or other type of objective. Asubsystem visualization relationship map 4302 may also provide avisualization of the interactions between a subset of document structureinstance that set out requirements for achieving more than oneobjective. For example, the subset of document structure instances mayset out the requirements for adding a new user to a system orprovisioning a new service. The sub-system visualization relationshipmap 4302 assists in the identification of proper and improperinteractions among requirements identified for a particular objective,and helps identify whether a constituent has any interaction in towardsachieving the particular objective. The sub-system visualizationrelationship map 4302 may help pinpoint and identify non-interactingconstituents that should, in fact, be interacting constituents.

In generating the sub-system visualization relationship map 4302, thesyntax-based document visualization module 3604 may perform arecognition process to recognize that one or more document structureinstances conforms to an interaction syntax. As discussed previously,the interaction syntax may be a controlled document structure instancesyntax and may, or may not, be associated with a document structureinstance identifier. The syntax-based document visualization module 3604may parse and/or analyze a document structure instance to identifyinteracting constituents and non-interacting constituents according tothe interaction syntax. In recognizing whether a document structureinstance conforms to an interaction syntax for generating the sub-systemvisualization relationship map 4302, the syntax-based documentvisualization module 3604 may employ any one of the syntaxes previouslydiscussed.

In addition, the syntax-based document visualization module 3604 mayidentify a document structure instance for inclusion in the sub-systemvisualization relationship map 4302 based on a type-of-use identifierassociated with the document structure instance. A type-of-useidentifier may identify a use achievable by the document structureinstance. For example, the type-of-use identifier may identify that adocument structure instance is a first step or first action towardsachieving a particular objective.

The type-of-use identifier may also distinguish the document structureinstance from a set of document structure instance. Moreover, documentstructure instances with similar type-of-use identifiers may be groupedtogether as a subset of document structure instances. For example, afirst type-of-use identifier may identify that a first documentstructure instance is a first step or first action towards achieving aparticular objective, and a second type-of-use identifier may identifythat a second document structure instance is a second step or secondaction towards achieving the same particular objective. Otherarrangements of type-of-use identifiers are also possible.

Similar to the component visualization relationship map 3702, thesub-system visualization relationship map 4302 includes several systemvisualization relationship objects and several system visualizationinteraction objects. With respect to the sub-system visualizationrelationship map 4302, the system visualization relationship objects mayrepresent a constituents from a subset of document structure instances,such as where the subset of document structure instances aredistinguishable by one or more type-of-use identifiers. Similarly, thesystem interaction objects of the sub-system visualization relationshipmap 4302 may be a visual representation of an interaction, ornon-interaction, between one or more of the visualization relationshipobjects.

The sub-system visualization relationship map 4302 represents asub-system visualization relationship map for several constituentsidentified in document structure instances having a type-of-useidentifier. Examples of constituents shown in the sub-systemvisualization relationship map 4302 include a reporting module 4304, theassign resource module 3704, the maintain project module 3712, theresource manager 3724 and the project resource management system 3706.

In one implementation, the visualization interaction objects of thesub-system visualization relationship map 4302 are identified by thetype-of-use identifier associated with the document structure instanceestablishing the interaction, or non-interaction, between constituents.For example, the graphical iconic image 4306 includes the type-of-useidentifier “UC-1-3,” which identifies that the document structureinstance having the type-of-use identifier “UC-1-3” establishes aninteraction between an employee 4308 and the reporting module 4304.Other examples of type-of-use identifiers include the type-of-useidentifier “UC-1-4,” the type-of-use identifier “UC-1-2,” and thetype-of-use identifier “UC-1-1.” By including the type-of-useidentifiers in the sub-system visualization relationship map 4302, thevisualization module 3604 assists in identifying the document structureinstances that recite constituents used in achieving a particularobjective, use, or goal. For example, by reviewing the systemvisualization interaction objects labeled with type-of-use identifiers,a user or other system can quickly refer to the identified documentstructure instance and determine whether the interaction, ornon-interaction, established by the document structure instance is aproper, or desired, interaction or non-interaction.

Like the system visualization relationship map 4002, the sub-systemvisualization relationship map 4302 includes system visualizationinteraction objects that represent interactions among one or more of thesystem visualization relationship objects. The sub-system visualizationrelationship map 4302 shows that the system visualization interactionobject 4306 illustrates an interaction, established by one or moredocument structure instances, between the employee 4308 and thereporting module 4304. Depending on the type-of-use identifierassociated with a document structure instance or the type-of-useidentifiers associated with a subset of document structure instances ofan electronic document, a sub-system visualization relationship map mayinclude none, one, or more than one system visualization interactionobjects.

In evaluating a set of document structure instances, the sub-systemvisualization relationship map 4302 may also include a color schemahaving one or more assignable display states that displays interactions,or non-interactions, between constituents of a document structureinstance or an electronic document. In FIG. 43, the sub-systemvisualization relationship map 4302 includes a first display state 4310that displays that a constituent has at least one interaction, and asecond display state 4312 that displays that a constituent does not havean interaction. The display states 4310-4312 may be based on one or moreassignable characteristics of a visualization relationship object, suchas a color, shading, orientation, position, or any other characteristic.In one implementation, the color schema includes a first colorassignable to the first display state 4310, and a second color differentthan the first color assignable to the second display state 4312.However, other implementations are also possible. Based on the colorschema, the visualization module 3604 assigns system visualizationrelationship objects display states depending on whether a documentstructure instance has established an interaction for the constituent.

Although the visualization module 3604 may be instructed or configuredto generate the system visualization relationship map 4302, thevisualization module 3604 may generate alternative system visualizationrelationship maps. FIG. 44 shows an alternative example of a sub-systemvisualization relationship map 4402. The system visualizationrelationship map 4402 represents an entity-specific sub-systemvisualization relationship map and more particularly, a sub-systemvisualization relationship map that illustrates the interactions betweena first set of constituents having an entity type of “System” and asecond set of constituents having an entity type “System.” However,other types of sub-system visualization relationship maps may includeconstituents having an entity type other than “System,” such as“Person,” “GenericEntity” or other entity type. A sub-systemvisualization relationship map that includes interactions betweenconstituents of mixed entity types is also possible.

The sub-system visualization relationship map 4302 includes an entitytype identifier cell 4404 that identifies the interacting entity types,a set of rows 4406-4426 for the constituents identified in theelectronic document having the entity type “System” and a set of columns4428-4432 for the constituents identified in the electronic documenthaving the entity type “System.” In one implementation, each of the rows4405-4426 and each of the columns 4428-4432 match at least onepermissible constituent of a glossary, such as the entity glossary 2502or the agent glossary 140. In an alternative implementation, a rowand/or a column may represent an impermissible constituent orimpermissible phrase. Other arrangements of permissible andimpermissible constituents and phrases are also possible.

In one implementation, each row 4406-4426 and each column 4428-4432represents a system visualization relationship object for the sub-systemvisualization relationship map 4402. In addition, the sub-systemvisualization relationship map 4402 also includes system visualizationinteraction objects. With respect to the sub system visualizationrelationship map 4402, a system visualization interaction object may bean intersection cell between a row and a column where a documentstructure instance establishes an interaction between the constituentrepresented by the row and the constituent represented by the column. Asone example, the intersection cell 4434 between the row 4406 and thecolumn 4430 represents a system visualization interaction object. Theintersection cell 4434 illustrates that a document structure instanceidentified by the syntax-based document visualization module 3604establishes an interaction between the project resource managementsystem 3706 and the reporting module 4304. Alternatively, a systemvisualization interaction object may be an intersection cell between arow and a column where an interaction is not established between theconstituent represented by the row and the constituent represented bythe column. As one example, the intersection cell 4436 between the row4414 and the column 4430 represents a visualization interaction objectwhere a document structure instance has not established an interactionbetween the maintain project module 3712 and the reporting module 4304.

FIG. 45 shows an alternative example of a sub-system visualizationrelationship map 4502. The sub-system visualization relationship map4502 represents an entity-specific sub-system visualization relationshipmap and more particularly, a sub-system visualization relationship mapthat illustrates the interactions between a first set of constituentshaving an entity type of “System” and constituents having the entitytype “Person.” However, other types of sub-system visualizationrelationship maps may include constituents having an entity type otherthan “Person” or “System,” such as “GenericAgent,” “GenericEntity,” orother entity type. A sub-system visualization relationship map thatincludes interactions established between constituents of mixed entitytypes is also possible.

The sub-system visualization relationship map 4502 includes an entitytype identifier cell 4506 that identifies the interacting entity types,a set of rows 4506-4526 for the constituents identified in subset ofdocument structure instances having the entity type “System,” and a setof columns 4528-4534 for the constituents identified in a subset ofdocument structure instances having the entity type “Person.” In oneimplementation, each of the rows 4506-4526 and each of the columns4528-4534 correspond to at least one permissible constituent of aglossary, such as the entity glossary 2502 or the agent glossary 140. Inan alternative implementation, a row and/or a column may represent animpermissible constituent or impermissible phrase. Other arrangements ofpermissible and impermissible constituents and phrases are alsopossible.

In one implementation, each row 4506-4526 and each column 4528-4534represents a system visualization relationship objects for thesub-system visualization relationship map 4502. In addition, thesub-system visualization relationship map 4502 may include systemvisualization interaction objects. With respect to the sub-systemvisualization relationship map 4502, a system visualization interactionobject may be an intersection cell between a row and a column where adocument structure instance establishes an interaction between theconstituent represented by the row and the constituent represented bythe column. As one example, the intersection cell 4538 between the row4510 and the column 4532 represents a system visualization interactionobject. The intersection cell 4538 illustrates that at least onedocument structure instance identified by the syntax-based documentvisualization module 3604 establishes an interaction between the projectresource management system reporting module 4304 and the resourcemanager 3724. Alternatively, a system visualization interaction objectmay be an intersection cell between a row and a column where aninteraction is not established between the constituent represented bythe row and the constituent represented by the column. As one example,the intersection cell 4538 between the row 4512 and the column 4532represents a system visualization interaction object where a documentstructure instance has not established an interaction between the assignresource module 3704 and the resource manager 3724.

The syntax-based document visualization module 3604 may also generate asub-system visualization relationship map that includes one or moredocument structure instances that establish the interaction, ornon-interaction, between two constituents. Referring to FIG. 46 is analternative example of a entity-specific sub-system visualizationrelationship map 4602 that includes a visualization interaction object4604 having a document structure instance. The document structureinstance “UC 1-4: Project resource management system sends data toreporting module” establishes an interaction between the reportingmodule 4304 and the project resource management system 3706. Thedocument structure instance of the visualization interaction object 4604includes a type-of-use identifier, “UC 1-4,” which indicates to thesyntax-based document visualization module 3604 that the documentstructure instance should be included in a subset of document structureinstances relating to a particular objective. For example, othertype-of-use identifiers may also include the prefix “UC,” whichindicates to the syntax-based document visualization module 3604 thatthe document structure instance associated with the type-of-useidentifier having the prefix “UC” should be included in the subset withthe document structure instance associated with the type-of-useidentifier “UC 1-4.” Other type-of-use identifiers are also possible.

FIG. 47 is yet another example of an entity-specific sub-systemvisualization relationship map 4702 that includes visualizationinteraction objects 4704-4706 having at least one document structureinstance. As shown in FIG. 47, a first visualization interaction object4704 includes one document structure instance, whereas a secondvisualization interaction object 4706 includes more than one documentstructure instance. By including document structure instances in theentity-specific sub-system visualization relationship map 4602 and theentity-specific sub-system visualization relationship map 4702, thesyntax-based document visualization module 3604 facilitates rapididentification of the document structure instances that establish theinteraction between constituents. Inclusion of the document structureinstances in the entity-specific sub-system visualization relationshipmaps 4602-4702 reduces time and resources spent in reviewing anelectronic document to identify the document structure instances thatestablish the interactions between constituents.

FIG. 48 shows one example of an attribute requirement report 4802generated by the syntax-based document attribute analysis module 3606.With reference to FIG. 27, the syntax-based document attribute analysismodule 3606 refers to the non-functional attribute glossary 2702 todetermine whether one or more document structure instances satisfy anattribute for a constituent in the document structure instance.

For instance, the syntax-based document attribute analysis module 3606may first identify a constituent in a document structure instance thatmatches a first permissible constituent found in one or more glossaries,such as the entity glossary 2502 or the agent glossary 140. Thesyntax-based document attribute analysis module 3606 may then analyzethe document structure instance, such as by parsing the words andphrases of the document structure instance, for a document structureinstance phrase that satisfies an attribute requirement associated withthe constituent. As previously discussed, satisfying an attributerequirement may include satisfying one or more target phrases from adocument structure instance with an attribute requirement phrase. Thesyntax-based document attribute analysis module 3606 may then generatethe attribute requirement report 4802 which may indicate whether anattribute for constituent was satisfied by one or more documentstructure instances.

In general, an attribute requirement report organizes major categoriesof non-functional attributes by system and sub-system. In alternativeimplementations, an attribute requirement report may organize minorcategories, alternative categories, or any other type of categories. Theattribute requirement report 4802 is an example of a category-specificattribute requirement report for a performance category ofnon-functional attributes. Category handles 4838-4846 may allow a useror system to select an alternative category-specific attributerequirement report for another category, such as a capacity andvolumetrics category, a delivery channels category, a new area category,and an availability. However, the attribute requirement report 4802 mayalso be implemented as a cross-category attribute requirement reportthat identifies whether document structure instances satisfy attributesfor more than one attribute category.

The organization of the attribute requirement report 4802 facilitatesidentifying if a category (such as a performance category, a capacityand volumetrics category, a delivery channels category, or othercategory) of a non-functional attribute is not specified for any systemand/or sub-system. As shown in FIG. 48, the attribute requirement report4802 identifies that a number of attributes have not been satisfied forthe performance category.

In one implementation, the attribute requirement report 4802 includes aset of rows 4804-4824, wherein each row represents a constituentidentified by the syntax-based document attribute analysis module 3606.The attribute requirement 4802 may also include a set of columns4828-4832, wherein each column represents an attribute requirementcontained within the non-functional attribute glossary 2702. However,other arrangements of rows and columns are possible. Moreover theattribute requirement report 4802 may be represented by any type ofreport, such as a pie chart, a bar chart, a step chart, or any othertype of chart.

The attribute requirement report 4802 may further include anintersection cell that between a row and column that identifies whethera document structure instance satisfies an attribute requirementassigned to a constituent. As shown in FIG. 48, the attributerequirement report 4802 includes an intersection cell 4834 thatidentifies that a document structure instance satisfies the onlineresponse time attribute for the master employee repository constituent.In this example, the document structure instance that satisfies theonline response time attribute is “The Master Employee Repository mustprovide an average response time of 500 milliseconds for employee recordqueries.” However, other document structure instances that satisfy theonline response time attribute for the master employee repositoryconstituent are also possible.

Moreover, the attribute requirement report 4802 may include anintersection cell 4836 that identifies that a document structureinstance does not satisfy an attribute requirement assigned to aconstituent. Alternatively, the intersection cell 4836 may identify thatno document structure instances from an electronic satisfies anattribute requirement assigned to a constituent. In the attributerequirement report 4802, the intersection 4836 identifies that nodocument structure instances satisfies the online response timeattribute assigned to the E-verify system constituent. In this example,the document structure instance that satisfies the online response timeattribute is “The Master Employee Repository must provide an averageresponse time of 500 milliseconds for employee record queries.”

The systems, components, and logic described above may be implemented inmany different ways, including a combination of hardware and software,or as software for installation on any desired operating systemincluding Linux, Unix, or Windows. The functionality may be implementedin a single system or functionally partitioned across multiple systems.As another example, the components, systems, and logic may beimplemented as computer-executable instructions or as data structures inmemory and may be stored on, distributed across, or read from manydifferent types of machine-readable media. The machine-readable mediamay include RAM, ROM, hard disks, floppy disks, CD-ROMs, flash memory orother machine-readable medium. The components, systems and logic mayalso be encoded in a signal, such as a signal received from a network orpartitioned into sections and received in multiple packets communicatedacross a network.

The systems may be implemented in software, hardware, or a combinationof software and hardware. The systems may be implemented in a computerprogramming language, such as C# or Java, or in a query language, suchas the SPARQL Protocol and RDF Query Language (“SPARQL”). The systemsmay also use one or more metadata data models, such as the ResourceDescription Framework (“RDF”). Moreover, the systems may use a knowledgerepresentation language, such as the Web Ontology Language (“OWL”) inconjunction with a semantic framework, such as Jena.

Furthermore, the systems may be implemented with additional, different,or fewer components. As one example, a processor or any other logic orcomponent may be implemented with a microprocessor, a microcontroller, aDSP, an application specific integrated circuit (ASIC), programinstructions, discrete analog or digital logic, or a combination ofother types of circuits or logic. As another example, memories may beDRAM, SRAM, Flash or any other type of memory. The systems may bedistributed among multiple components, such as among multiple processorsand memories, optionally including multiple distributed processingsystems.

Logic, such as programs or circuitry, may be combined or split amongmultiple programs, distributed across several memories and processors,and may be implemented in or as a function library, such as a dynamiclink library (DLL) or other shared library. The DLL, for example, maystore code that implements functionality for a specific module as notedabove. As another example, the DLL may itself provide all or some of thefunctionality of the system. In one implementation, the system isimplemented using Visual Basic for Applications as a Word™ applicationplug-in.

Interfaces between the systems and the logic and modules within systemsmay be implemented in numerous ways. For example, interfaces betweensystems may be Web Services, Simple Object Access Protocol, orEnterprise Service Bus interfaces. Other examples of interfaces includemessage passing, such as publish/subscribe messaging, shared memory, andremote procedure calls.

While various embodiments of the invention have been described, it willbe apparent to those of ordinary skill in the art that many moreembodiments and implementations are possible within the scope of theinvention. Accordingly, the invention is not to be restricted except inlight of the attached claims and their equivalents.

1. (canceled)
 2. A document analysis system comprising: a memorycomprising: a document structure instance for analysis; and statemachines configured to evaluate the document structure instance; andprocessing circuitry in communication with the memory, the processingcircuitry configured to: identify a syntax of the document structureinstance; select a state machine from among the state machines foranalysis of the document structure instance, the state machine selectedin response to identification of the syntax of the document structureinstance; determine phrases in the document structure instance; andparse contents of the document structure instance phrases andresponsively move through states of the selected state machine, todetermine, using the selected state machine, conformance of the documentstructure instance to a controlled document structure instance syntaxassociated with the selected state machine.
 3. The document analysissystem of claim 2, wherein the processing circuitry is furtherconfigured to identify the syntax of the document structure instancebased on a phrase among the determined phrases within the documentstructure instance.
 4. The document analysis system of claim 2, whereinthe circuitry is further operable to identify the syntax of the documentstructure instance based on a syntax identifier associated with thedocument structure instance.
 5. The document analysis system of claim 2,wherein the selected state machine comprises a transition state, anerror state, and a final state.
 6. The document analysis system of claim5, wherein the final state represents conformance of the documentstructure instance to the controlled document structure instance syntax.7. The document analysis system of claim 5, wherein the error staterepresents non-conformance of the document structure instance to thecontrolled document structure instance syntax.
 8. The document analysissystem of claim 7, wherein the circuitry is further configured to:output a message to be displayed in response to the selected statemachine moving to the error state, wherein the message comprises asuggestion to correct the non-conformance.
 9. The document analysissystem of claim 5, wherein the transition state representsidentification of an expected constituent within the contents of thedocument structure instance as the contents are parsed.
 10. The documentanalysis system of claim 2, wherein the selected state machine isassociated with more than one controlled document structure instancesyntax.
 11. A method comprising: identifying a document structureinstance within the document; identifying a syntax of the documentstructure instance; selecting a state machine from a plurality of statemachines based on the syntax of the document structure instance, thestate machine associated with a controlled document structure instancesyntax; and determining, using the selected state machine, conformanceof the document structure instance to the controlled document structureinstance syntax by parsing contents of the document structure instanceand moving through states of the selected state machine corresponding tothe parsed contents.
 12. The method of claim 11, wherein determining theconformance of the document structure instance comprises: moving througha transition state, an error state, and a final state based on parsedcontent of the document structure instance.
 13. The method of claim 12,wherein the document structure instance is determined to conform to thecontrolled document structure instance syntax in response to theselected state machine moving to the final state.
 14. The method ofclaim 12, wherein the document structure instance is determined to benon-conformant to the controlled document structure instance syntax inresponse to the selected state machine moving to the error state. 15.The method of claim 14, further comprising: displaying a message inresponse to the selected state machine moving to the error state, themessage comprising a suggestion to correct the non-conformance.
 16. Aproduct comprising: a machine readable storage medium other than atransitory signal; and instructions stored on the medium, theinstructions configured to cause circuitry to: receive a documentstructure instance within the document; identify a syntax of thedocument structure instance; identify a state machine to analyze thedocument structure instance, the state machine being selected from aplurality of state machines based on the syntax of the documentstructure instance; parse contents of the document structure instance;move from one state of the state machine to another state of the statemachine in response to the parsed content; and evaluate whether thedocument structure instance conforms to a controlled document structureinstance syntax corresponding to the state machine based on a last statewithin the state machine corresponding to a last constituent of theparsed content of the document structure instance.
 17. The product ofclaim 16, wherein the controlled document structure instance syntax is afirst controlled syntax, the medium further comprising instructions tocause the circuitry to: identify a modal phrase in the documentstructure instance; identify a second controlled syntax for the documentstructure instance to comply with; identify a second state machinecorresponding to the second controlled syntax; and evaluate whether thedocument structure instance conforms to the second controlled syntax bytransitioning through states of the second state machine according tothe parsed content of the document structure instance.
 18. The productof claim 16, wherein conformance of the document structure instance tothe controlled document structure instance syntax corresponding to thestate machine is based on the last state of the state machine being afinal non-error state.
 19. The product of claim 18, wherein the statemachine comprises a start state, a transitory state, an error state, anda final state.
 20. The product of claim 19, wherein the state machine bydefault begins at the start state, and to move from one state of thestate machine to another state of the state machine in response to theparsed content, the medium further comprising instructions to cause thecircuitry to: identify a constituent in the parsed content of thedocument structure instance; and determine a next state corresponding tothe constituent based on a current state of the state machine.
 21. Theproduct of claim 19, wherein the error state identifies, in the documentstructure instance, at least one of a non-agent entity error, a missingagent error, an unknown agent error, an unknown action error, or amissing action error.